SPOOL
关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西。) 对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如: spool常用的设置 导出文本数据的建议格式: 注:LINESIZE要稍微设置大些,免得数据被截断,它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果LINESIZE设置太大,会大大降低导出的速度,另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。 对于字段内包含很多回车换行符的应该给与过滤,形成比较规矩的文本文件。通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述: 方法一:采用以下格式脚本 方法二:采用以下脚本 比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。 在实践中,发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sqlldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。 而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。 因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。 自测例:将ssrv_sendsms_task表中的数据导出到文本(数据库Oracle 9i 操作系统 SUSE LINUX Enterprise Server 9) spool_test.sh脚本如下: !/bin/shDB_USER=zxdbm_ismp #DB USER sqlplus -s
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 如何通过LINQ使用以下代码来避免循环?
- xcode – 与为MacOSX文件“/usr/lib/libSystem.B
- ios – 如何使UIImage适合整个UINavigationBar视
- C# 中GUID生成格式的四种方法
- XML(1)——shema约束之命名空间
- 子表ajax内的SelectOneRadio调用不起作用
- Strings 在 Swift 2中字符串设计的背后思想
- SAXReader saxReader = new SAXReader();来解析x
- oracle – 我的CFQUERY结果结构中缺少GENERATEDK
- ruby-on-rails – 未定义PrivatePub错误Rails 3.