概述
最近从Oracle数据库导数据到金仓数据库(KingBase),有些表迁移失败,故手动进行迁移。将某表数据从Oracle导出为CSV文件后,却没找到金仓数据库如何从外部文件导入数据(可能是因为我的版本是便宜版本?),只好直接使用SQL语句迁移数据。
方法一:生成SQL语句
以某表格为例,从Oracle查询所有数据后(生成SqlText),将**【查询结果】**(insert语句)复制到金仓数据库管理工具中去执行即可。代码示例如下:
select 'insert into psm.net_channel values(' || CH_NO||','''||CH_NAME||''', '||ERTU_NO||','
||PROTOCOL||','''||ROUTER1_ADDRESS||''','''||IP1_ADDRESS||''','||PORT1_NO||','''||ROUTER2_ADDRESS||''',
'''||IP2_ADDRESS||''','||PORT2_NO||','||ON_VALVE||','||OFF_VALVE||','||COMM1_STATUS||',
'||ROUTER1_STATUS||','||COMM2_STATUS||','||ROUTER2_STATUS||','''||START_TIME||''','''||STOP_TIME_POINT||''',
'||RUN_TIME||','||STOP_TIME||','||RUN_RATIO||','||SUCCESS_COUNT||','||FAIL_COUNT||','||ERROR_CODE_RATIO||',
'||STAT_TAG||');' AS SQLTEXT
from net_channel;
方法二:生成SQL文件
spool /opt/log.txt;
select 'insert into psm.MV_HIS_DATA1 values( 401441 ,''' ||to_char(DATA_TIME,'yyyy-mm-dd hh24:mi:ss')|| ''',' ||YC_RAW_VAL|| ',' ||YC_VAL|| ');' from WF_YC_HISTORY_DATA1 where ANALOG_NO = 300696;
spool off;