Oracle 大数据量数据导入导出示例 适用范围: 数据库中的同一个表, 适用范围:不同 Oracle 数据库中的同一个表,大数据量导出导入 操作步骤: 1. 新建导出 SQL 文件 export.sql,内容如下: set trimspool on //去除重定向(spool)输出每行的拖尾空格,缺省为 off set linesize 120 // 默认 set pagesize 2000 // 默认 set heading off // 输出域标题,缺省为 on set term off // 是否在屏幕上显示输出的内容, 主要用与 SPOOL 结合使用, 缺省为 off spool f:\TD_S_CHECKEXTRACTIONRULE.txt //输出符合要求格式的数据文件 // 下面是查询出来数据的文件格式 SELECT PLAN_ID||'~'||RULEITEM_ID||'~'||RULEITEM_NAME||'~'||RULEITEM_DESC||'~'||CREATE_S TAFF_ID||'~'||to_char(CREATE_DATE, 'yyyy-mm-dd hh24:mi:ss')||'~'||RSRV_STR1||'~'||RSRV_STR2||'~'||RSRV_NUM3||'~'||RSRV_NUM4||'~'||RSRV_ DAT5||'~'||RSRV_DAT6 FROM ucr_cc.TD_S_CHECKEXTRACTIONRULE; spool off // 关闭输出,重要 2 在 PL/SQL 新建命令窗口(Command Window),执行 export.sql,命令行:@f:\export.sql 如图: 3.新建导入控制文件 import_controlfile.ctl,格式为 ctl,内容如下: Load DATA INFILE 'f:\TD_S_CHECKEXTRACTIONRULE.txt' // 已经导出的文件名和路径 APPEND INTO TABLE TD_S_CHECKEXTRACTIONRULE // 对应待带入的表 FIELDS TERMINATED BY '~' // 分隔符 TRAILING NULLCOLS // 将没有对应值的列都置为 NULL // 对应表中的各个字段,时间格式 Field Date "yyyy-mm-dd hh24:mi:ss" (PLAN_ID,RULEITEM_ID,RULEITEM_NAME,RULEITEM_DESC,CREATE_STAFF_ID, CREATE_DATE DATE “yyyy-mm-dd hh:mi:ss”,RSRV_STR1,RSRV_STR2,RSRV_NUM3,RSRV_NUM4,RSRV_DAT5,RSRV_DAT6) 4.在运行中输入 cmd,进入 DOS 界面,进入到相应的路径如 F:,确认存在导入控制文件 import_controlfile.ctl,然后执行命令行: sqlldr UCR_CC/UCRCCdev@ngcusdev_sx control=f:\import_controlfile.ctl log=f:\log.txt 如图: 需要注意的是: 1). 支持 Oracle 命令运行的环境 2). UCR_CC/UCRCCdev@ngcusdev_sx 是待导入库的用户名和密码 3).导出错误:”Cannot set trimspool”,一般是 select 查询数据时忘记加”;”结束