方案:
1.sysbase資料庫資料使用sysbase的bcp指令導出到txt檔案中
2.将txt資料檔案上傳到oracle資料庫伺服器
3.使用oracle資料庫的sqlldr指令将txt資料導入到oracle資料庫中
操作
1.以以下資料庫表(ba_wh_dimension_m)為例
資料庫表結構

資料庫表資料
2.将以上資料通過bcp導出到ba_wh_dimension_m_bcp.txt中
找到sysbase安裝目錄,進入以下目錄
執行指令:bcp 資料庫名..ba_wh_dimension_m out D:\tmp\ba_wh_dimension_m_bcp.txt -Uuser -P****** -SWIN0KQN6QSF4BI -c -t"!|" -r"\n"
SWIN0KQN6QSF4BI:資料庫和表所在伺服器名稱。
!| : 選項用來分隔輸出檔案中每個字段/列
執行結果:
檢視導出的資料:
将txt資料檔案傳輸到oracle伺服器/tmp路徑下。
建立ba_wh_dimension_m_bcp.ctl檔案,檔案内容為:
load data #固定寫法
infile 'ba_wh_dimension_m_bcp.txt' #導入ba_wh_dimension_m_bcp.txt
append into table ba_wh_dimension_m #導入到表ba_wh_dimension_m
fields terminated by "!|" #識别分隔符
(T_MONTH,T_QUARTER,T_YEAR)#表所有字段
在oracle資料庫中建好相同表結構的表ba_wh_dimension_m
登入oracle資料庫伺服器,切換到oracle使用者進入/tmp目錄下,執行以下指令
sqlldr test/[email protected] control=ba_wh_dimension_d_bcp.ctl errors=999999
test/[email protected]:使用者名/密碼@執行個體名
執行結果:
注:此處執行指令時需注意檔案的權限問題。須有該使用者的執行權限