天天看點

Sysbase資料庫資料遷移到Oracle資料庫

方案:

1.sysbase資料庫資料使用sysbase的bcp指令導出到txt檔案中

2.将txt資料檔案上傳到oracle資料庫伺服器

3.使用oracle資料庫的sqlldr指令将txt資料導入到oracle資料庫中

操作

1.以以下資料庫表(ba_wh_dimension_m)為例

資料庫表結構

Sysbase資料庫資料遷移到Oracle資料庫

資料庫表資料

Sysbase資料庫資料遷移到Oracle資料庫

2.将以上資料通過bcp導出到ba_wh_dimension_m_bcp.txt中

    找到sysbase安裝目錄,進入以下目錄

Sysbase資料庫資料遷移到Oracle資料庫

  執行指令:bcp 資料庫名..ba_wh_dimension_m out D:\tmp\ba_wh_dimension_m_bcp.txt -Uuser -P****** -SWIN0KQN6QSF4BI -c -t"!|" -r"\n"

  SWIN0KQN6QSF4BI:資料庫和表所在伺服器名稱。

  !| : 選項用來分隔輸出檔案中每個字段/列

執行結果:

Sysbase資料庫資料遷移到Oracle資料庫

檢視導出的資料:

Sysbase資料庫資料遷移到Oracle資料庫

将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]:使用者名/密碼@執行個體名

執行結果:

Sysbase資料庫資料遷移到Oracle資料庫

注:此處執行指令時需注意檔案的權限問題。須有該使用者的執行權限