sqlloader导出数据和导入数据

时间:2024-05-22 13:06:26

分类: Oracle

忙了一天终于把sqlloader导出数据和导入数据弄清楚了,累死俺了。。。 
这个总结主要分为三个大部分,
第一部分(实例,主要分两步),第二部分(参数小总结),第三部分(完全参数总结)

第一部分 
第一步 :这是我的导出数据的脚本call.sql
conn scott/tiger
set echo off
set term off
set line 1000 pages 0
set feedback off
set heading off
set trimspool on 
spool /temp/test/ldr_test.csv
select a.empno||',"'||a.ename||'",'||to_char(a.hiredate,'yyyy-mm-dd hh24:mi:ss')||','||a.sal from test a;
 
spool off
set trimspool off
set heading on
set feedback on
set term on
set echo on
exit

注释:call.sql脚本执行方法 (1)sqlplus /nolog 先进入sqlplus命令模式
                                         (2)start call.sql  在sqlplus命令模式下执行

第二步 :导入数据的脚本add_test.ctl
LOAD DATA
INFILE ldr_test.csv
TRUNCATE INTO TABLE test
FIELDS TERMINATED BY","  OPTIONALLY ENCLOSED BY'"'
(EMPNO,ENAME,HIREDATE date 'yyyy-mm-dd hh24:mi:ss',SAL)

注释: 在第一步导出数据后,执行add_test.sql脚本命令为: sqlplus scott/tiger control=add_test.ctl

至此用sqlplus导入/出数据完成了,如果有些参数不明白,请看一下第二三部分。
哦..忘了说test测试表的结构了,create table test as select empno,ename,hiredate,sal from emp; 
            
第二部分 
spool本身其实没有啥难的 ,就是set参数的个数太太多啦!!!下面就是我网上Copy的,当然有一些是自己加上去的
SQL>set colsep' '; //-域输出分隔符

SQL>set newp none  //设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none,这样输出的数据行都是连续的,中间没有空行之类的

SQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为on

SQL> set echo on               //设置运行命令是是否显示语句

SQL> set feedback on;       //设置显示“已选择XX行”

SQL>set feedback off;      //回显本次sql命令处理的记录条数,缺省为on即去掉最后的 "已经选择10000行"

SQL>set heading off;    //输出域标题,缺省为on 设置为off就去掉了select结果的字段名,只显示数据

SQL>set headsep off  //标题分隔符

SQL>set pagesize 0;     //输出每页行数,缺省为24,为了避免分页,可设定为0。(可以简写为:set pages 0)

SQL>set linesize 80;     //输出一行字符个数,缺省为80。(可以简写为:set line 80)

SQL>set numwidth 12;     //输出number类型域长度,缺省为10

SQL>set termout/term off;    //显示脚本中的命令的执行结果,缺省为on

SQL>set trimout on; //去除标准输出每行的拖尾空格,缺省为off

SQL>set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off

SQL>set serveroutput on;  //设置允许显示输出类似dbms_output

SQL> set timing on;          //设置显示“已用时间:XXXX”

SQL> set autotrace on-;    //设置允许对执行的sql进行分析

SQL>set verify off                     //可以关闭和打开提示确认信息old 1和new 1的显示.