快速业务通道

Oracle数据库备份与恢复(2):SQL*Loader

作者 凌众技术 来源 互联网 浏览 发布时间 2012-01-15
接将数 据导入到数据文件中。

  特点:save, conditionly gen redo logs, enforce PK UK NN, not fire triggers, can not load into cluster, other user can not make change命令为:

  $ sqlldr dbuser/oracle control=emp.ctl log=emp.log direct=true

  2、SPOOL导出文本数据方法

  导入的数据文件可以用 SPOOL导出文本数据方法生成。

  SQL*PLUS环境设置

  SET NEWPAGE NONE HEADING OFF SPACE 0

  PAGESIZE 0 SET TRIMOUT ON TRIMSPOOL ON LINESIZE 2500

  注:LINESIZE 要稍微设置大些,免得数据被截断,它应和相应的 TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。

  但是如果 LINESIZE 设置太大,会大大降低导出的速度,另外在 WINDOWS下导 出最好不要用 PLSQL导出,速度比较慢,直接用  COMMEND 下的 SQLPLUS命令最 小化窗口执行。对于字段内包含很多回车换行符的应该给与过滤,形成比较规矩的文本 文件。

  通常情况下,我们使用 SPOOL方法,将数据库中的表导出为文本文件,如下述:

  set trimspool on

  set linesize 120 pagesize 2000 newpage 1 heading off    term off spool  路径+文件名

  select col1||','||col2||','||col3||','||col4||'……' from tablename;

  spool off

三、脚本

  1将表中数据记录导出为字段值用分隔符'|'分开的。dat文件

  #!/bin/ksh

  ##################################################################

  ##    名称: unloadtable

  ##    功能:  本 shell 用于将表中数据记录导出

  ##                 导出为字段值用分隔符'|'分开的。dat文件

  ##    编者:

  ##    日期: 2006.03.18

    ##################################################################

  if [ $# -ne 3 ]

  then echo "usage:unloadtable tablename username password."

  exit 0

  fi

  ##准备工作

  echo "set heading off     " >/tmp/$1.col

  echo "set pagesize 0" >>/tmp/$1.col

  echo "set linesize 800&nbs

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号