資源描述:
《用bcp命令實現(xiàn)sybase數(shù)據(jù)向sqlserver轉(zhuǎn)換》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、用BCP命令實現(xiàn)Sybase數(shù)據(jù)向SQLServer的轉(zhuǎn)換BCP命令是SQLServer和Sybase用來備份和恢復(fù)數(shù)據(jù)用的工具,它使用方便,備份、恢復(fù)速度快。在SQLServer中和在Sybase中使用bcp命令,語法格式相似。因此,實踐中審計人員在對Sybase數(shù)據(jù)庫數(shù)據(jù)進行采集轉(zhuǎn)時,可以考慮先用bcp命令將Sybase數(shù)據(jù)庫數(shù)據(jù)以文本格式導(dǎo)出,再用bcp命令將由Sybase導(dǎo)出的文本格式文件導(dǎo)入到SQLServer數(shù)據(jù)庫。值得注意的是:在同一機器中如果同時安裝了SQLServer和Sybase后,用bcp命令對SQLServer數(shù)據(jù)庫或Sybase數(shù)據(jù)庫進行導(dǎo)入導(dǎo)出操作
2、時,常會出現(xiàn)如下錯誤:1、對SQLServer數(shù)據(jù)庫進行bcp操作可能出現(xiàn)的錯誤:2、對Sybase數(shù)據(jù)庫進行bcp操作可能出現(xiàn)的錯誤:這是由于在同一臺機器上安裝SQLServer和Sybase后,環(huán)境變量變了,在執(zhí)行bcp命令時,系統(tǒng)找到的不是對應(yīng)的bcp。解決問題的方法是:用bcp命令對SQLServer數(shù)據(jù)庫進行導(dǎo)入導(dǎo)出操作時,就將SQLServer對應(yīng)的環(huán)境變量提前;用bcp命令對Sybase數(shù)據(jù)庫進行導(dǎo)入導(dǎo)出操作時,就將Sybase對應(yīng)的環(huán)境變量提前。設(shè)置過程如下:我的電腦→屬性→高級→環(huán)境變量雙擊系統(tǒng)變量path,進入“編輯系統(tǒng)變量”,復(fù)制變量值粘貼到到一個空記本
3、事,選定要提前的內(nèi)容,復(fù)制、粘貼到最前面,再將修改后的內(nèi)容全部復(fù)制、粘貼回變量值,點擊“確定”保存設(shè)置(如不能立即生效,則重啟機器)。下面以轉(zhuǎn)換某縣社保部門Sybase數(shù)據(jù)庫備份數(shù)據(jù)為例(**.dat格式),說明轉(zhuǎn)換過程:一、安裝Sybase,在Sybase中新建一個為zysb的數(shù)據(jù)庫(用戶sa,密碼為空),在該數(shù)據(jù)中還原Sybase備份數(shù)據(jù)(備份數(shù)據(jù)存放位置為f:zysb.dat),還原過程命令格式為:C:DocumentsandSettingsAdministrator>isql-Usa-P1>loaddatabasezysbfromf:zysb.dat2>go1
4、>onlinedatabasezysb2>go二、在SQLServer中新建一個數(shù)據(jù)庫,為方便導(dǎo)入也命名為zysb,打開該SQLServer數(shù)據(jù)庫。三、進入SybaseCentral(開始→程序→Sybase→SybaseCentral),打開zysb數(shù)據(jù)庫,選定所有表,右擊鼠標(biāo),點擊GenerateDDL→CreateTabaleDDL。隨即會生成創(chuàng)建所選定表的腳本,點擊“搜索→查找/替換”,將“l(fā)ockallpages”全部替換成空,接著將“on'default'”替換成“ON[PRIMARY]”(也就是將Sybase建表腳本轉(zhuǎn)換成SQLServer建表腳本),復(fù)制結(jié)果粘
5、貼到SQLServer數(shù)據(jù)庫zysb中執(zhí)行,即可完成在SQLServer數(shù)據(jù)庫zysb中建表工作。四、進入SybaseAdvantage(開始→程序→Sybase→SybaseAdvantage),聯(lián)接zysb數(shù)據(jù)庫,輸入如下腳本執(zhí)行:select'bcpzysb..'+name+'outf:zysbtxt'+name+'.txt'+'-Usa-P-c-b5000'fromsysobjectswheretype='U'andnamenotlike'#%'將其執(zhí)行結(jié)果存為bcpout.bat批處理文件。運行文件(雙擊該文件),執(zhí)行過程如下圖:即用bcp命令批量導(dǎo)出Sybas
6、e數(shù)據(jù)庫zysb的用戶表,以文本格式保存在F:zysbtxt文件夾中,完成導(dǎo)出后的結(jié)果如下圖所示:五、再次在SybaseAdvantage輸入如下腳本執(zhí)行(在SQLServr完成zysb數(shù)據(jù)庫建表工作后,也可以直接在SQLServr查詢分析器中執(zhí)行):select'bcpzysb.dbo.'+name+'inf:zysbtxt'+name+'.txt'+'-T-c-b5000-SWWW-QBHIV49C8C7JHA'fromsysobjectswheretype='U'andnamenotlike'#%'(WWW-QBHIV49C8C7為服務(wù)器名,本例為機器名,JHA
7、為實例名,導(dǎo)入到SQLServr中的默認(rèn)實例可不用設(shè)置“-S”參數(shù))將執(zhí)行結(jié)果保存為一個名為bcpin.bat的批處理文件,運行批處理文件,即可將保存在f:zysbtxt文件夾中的文本文件導(dǎo)入到SQLServr數(shù)據(jù)庫zysb中,運行過程如下圖示:采集轉(zhuǎn)換到SQLServer后結(jié)果如下圖示:至此實現(xiàn)Sybase數(shù)據(jù)庫數(shù)據(jù)向SQLServer的轉(zhuǎn)換。用這種方法轉(zhuǎn)換過程簡單,速度較快。在工作中,如果審計人員對Sybase數(shù)據(jù)庫不熟悉或電腦中未安裝Sybase數(shù)據(jù)庫,可以要求被審計單位提供bcp命令格式導(dǎo)出的