方案:
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/test@ORCL control=ba_wh_dimension_d_bcp.ctl errors=999999
test/test@ORCL:用户名/密码@实例名
执行结果:
注:此处执行命令时需注意文件的权限问题。须有该用户的执行权限