sqlloader导出数据和导入数据
- 格式:pdf
- 大小:74.21 KB
- 文档页数:2
sqlloader导出数据和导⼊数据
分类: Oracle
忙了⼀天终于把sqlloader导出数据和导⼊数据弄清楚了,累死俺了。。。
这个总结主要分为三个⼤部分,
第⼀部分(实例,主要分两步),第⼆部分(参数⼩总结),第三部分(完全参数总结)
第⼀部分
第⼀步 :这是我的导出数据的脚本call.sqlconn 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.ctlLOAD 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的显⽰.