Welcome 微信登录

首页 / 数据库 / MySQL / Spool缓冲池技术导出Oracle数据为文本文件

利用Oracle中的Spool缓冲池技术可以实现Oracle数据导出到文本文件。1、在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件名: spool d:/output.txt 2、  set heading off                        --去掉字段名  set time off   echo off   head off     --此行设置不计算时间     不显示sql语句   不每隔几行现一下列名    set pagesize 0                         --去掉没格几行就显示一下的空行或多余的空格    set trims on                           --去掉全部空格,默认长度不够填充空格       set feedback off                       --不显示选择行数   不能和上一行和在一起  3、在命令行中随便输入你的SQL查询: select mobile from customer; select mobile from client; ……3、在命令行中输入缓冲结果命令: spool off;  则系统将缓冲池中的结果都输出到"output.txt"文件中,以TAB键分隔!-----------------------------------------------------------------ksh:runlog=p_divide_001.lognohup sqlplus " datatrans/hw@szdb1"<<!>/dev/null 2>&1 &set serveroutput onset timing onset time onspool $runlogset autocommit on;exec P_DIVIDE_INDEX_new(755,"CM_SUBS_SERVICE","SUBSID","P_DEL_DOUBLE_OPEN");commit;    spool off! 或者:  sqlplus -s $v_dest_tns_user/$v_dest_tns_pswd@$v_dest_tns_db <<  EOF | grep "DATA.VALUE" | while read s1 s2    set linesize 512 pagesize 512 head off    select "DATA.VALUE" "FIELDNAME",           decode(data_type,"DATE",      column_name||" date ""yyyy-mm-dd hh24:mi:ss"" "||                                           decode(column_id,$v_max_column_id, "",","),                            "VARCHAR2",  column_name||" char("||to_char(data_length)||")"||                                           decode(column_id,$v_max_column_id, "",","),                            column_name||  decode(column_id,$v_max_column_id, "",","))    from all_tab_columns    where owner=upper("$v_dest_tns_user") and table_name=upper("$v_table_name")    order by column_id;EOF  do    echo $s2 >> ./$v_datafile_name.ctl  done ----------------sqlplus -s  datatrans/hw@szdb1 <<EOF >sql.log   set linesize 1024 pagesize 512 head off   select * from dt_region;EOF  SQL> set echo on         --设置运行命令是是否显示语句SQL> set feedback on         --设置显示“已选择XX行”SQL> set colsep |          --设置列与列之间的分割符号SQL> set pagesize 10         --设置每一页的行数SQL> set serveroutput on --设置允许显示输出类似dbms_outputSQL> set heading on         --设置显示列名SQL> set timing on         --设置显示“已用时间:XXXX”SQL> set time on         --设置显示当前时间SQL> set autotrace on         --设置允许对执行的sql进行分析 set verify off                  --可以关闭和打开提示确认信息old 1和new 1的显示. set colsep ""                   --域输出分隔符set linesize 4000                   --输出一行字符个数,缺省为80set pagesize 0                   --输出每页行数,缺省为24,为了避免分页,可设定为0。set num 16(或者set numwidth 16)        --输出number类型域长度,缺省为10set trimspool on                 --去除重定向(spool)输出每行的拖尾空格,缺省为offset heading off                  --输出域标题,缺省为onset feedback off                 --回显本次sql命令处理的记录条数,缺省为onset termout off;                 --显示脚本中的命令的执行结果,缺省为onset timing off;                 --显示每条sql命令的耗时,缺省为offset trimout on;                 --去除标准输出每行的拖尾空格,缺省为offset echo off                    --显示start启动的脚本中的每个sql命令,缺省为onOracle Purge和drop的区别Oracle scope/sid/deferred/reset 总结说明相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数