Sysbase数据库数据迁移到Oracle数据库

方案:

1.sysbase数据库数据使用sysbase的bcp命令导出到txt文件中

2.将txt数据文件上传到oracle数据库服务器

3.使用oracle数据库的sqlldr命令将txt数据导入到oracle数据库中

操作

1.以以下数据库表(ba_wh_dimension_m)为例

数据库表结构

数据库表数据

Sysbase数据库数据迁移到Oracle数据库_第1张图片

2.将以上数据通过bcp导出到ba_wh_dimension_m_bcp.txt中

    找到sysbase安装目录,进入以下目录

Sysbase数据库数据迁移到Oracle数据库_第2张图片

  执行命令:bcp 数据库名..ba_wh_dimension_m out D:\tmp\ba_wh_dimension_m_bcp.txt -Uuser -P****** -SWIN0KQN6QSF4BI -c -t"!|" -r"\n"

  SWIN0KQN6QSF4BI:数据库和表所在服务器名称。

  !| : 选项用来分隔输出文件中每个字段/列

执行结果:

Sysbase数据库数据迁移到Oracle数据库_第3张图片

查看导出的数据:

Sysbase数据库数据迁移到Oracle数据库_第4张图片

将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/test@ORCL control=ba_wh_dimension_d_bcp.ctl errors=999999

      test/test@ORCL:用户名/密码@实例名

执行结果:

Sysbase数据库数据迁移到Oracle数据库_第5张图片

注:此处执行命令时需注意文件的权限问题。须有该用户的执行权限

你可能感兴趣的:(原创)