Oracle中spool命令实现的两种方法比较
---恢复内容开始---
要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表
SQL>; select id,username,password from myuser;//测试表 1 John |
要输出符合1,John,1234,这样的数据格式就用select id||','||username||','||password||',' from myuser这样的语句。
SQL>; select id||','||username||','||password||',' from myuser; 1,John,1234, 2,Jack,12345, |
写个下面这样的脚本就行可以输出符合要求格式的数据至文件中,不会含有其它不需要东西,只有数据部分。
--脚本文件名为expmyusr.sql,存数据的文件名为e:\exp.txt
set echo on --执行过程 SQL>; @e:\expmyusr.sql *** Spooling to e:\exp.txt 1,John,"1234" 2,Jack,"12345" 3,Rose,"2345" 4,Joe,"384657" 5,Tom,"384655" 6,Jordan,"384455" |
检查可知结果符合要求。
Oracle SPOOL的两种方法之对比
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本
set colsep '' |
方法二:采用以下脚本
set trimspool on |
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql ldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。
因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
---恢复内容结束---
要输出符合要求格式的数据文件只需在select时用字符连接来规范格式。比如有如下表
SQL>; select id,username,password from myuser; |
要输出符合1,John,1234,这样的数据格式就用select id||','||username||','||password||',' from myuser这样的语句。
SQL>; select id||','||username||','||password||',' from myuser; 1,John,1234, 2,Jack,12345, |
写个下面这样的脚本就行可以输出符合要求格式的数据至文件中,不会含有其它不需要东西,只有数据部分。
--脚本文件名为expmyusr.sql,存数据的文件名为e:\exp.txt
set echo on --执行过程 SQL>; @e:\expmyusr.sql *** Spooling to e:\exp.txt 1,John,"1234" 2,Jack,"12345" 3,Rose,"2345" 4,Joe,"384657" 5,Tom,"384655" 6,Jordan,"384455" |
检查可知结果符合要求。
Oracle SPOOL的两种方法之对比
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本
set colsep '' ------设置列分隔符 set trimspool on set linesize 120 set pagesize 2000 set newpage 1 set heading off set term off spool 路径+文件名 select * from tablename; spool off |
方法二:采用以下脚本
set trimspool on set linesize 120 set pagesize 2000 set newpage 1 set heading off set term off spool 路径+文件名 select col1||','||col2||','||col3||','||col4||'..' from tablename; spool off |
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql ldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。
因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
Oracle中spool命令实现的两种方法比较的更多相关文章
- Oracle中新建数据表的两种方法
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- Oracle中备份用户对象的两种方法
方法1: 执行步骤: exp userid=用户名/密码@数据库名 file=c:\emp.dmp 使用当前用户导出 exp userid=sys/sys@数据库名 file=c:\emp.dmp o ...
- oracle中清空表数据的两种方法
1.delete from t 2 .truncate table t 区别: 1.delete是dml操作:truncate是ddl操作,ddl隐式提交不能回滚 2.delete from t可以回 ...
- 在Oracle中执行动态SQL的几种方法
转载:在Oracle中执行动态SQL的几种方法 以下为内容留存: 在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如:SELECT t.empno,t.en ...
- Oracle中获取执行计划的几种方法分析
以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下 1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- 在Delphi中使用C++对象(两种方法,但都要改造C++提供的DLL)
Delphi是市场上最好的RAD工具,但是现在C++占据着主导地位,有时针对一个问题很难找到Delphi或Pascal的解决方案.可是却可能找到了一个相关的C++类.本文描述几种在Delphi代码中使 ...
- oracle多表关联删除的两种方法
oracle多表关联删除的两种方法 第一种使用exists方法 delete from tableA where exits ( select 1 from tableB Where tableA.i ...
- 在shell script中进行数值运算的两种方法
方法1:使用"$((计算式))"的方式进行数值运算,不需要使用declare命令显示声明数值型变量来存储计算结果: 方法2:使用declare命令配合"-i"选 ...
随机推荐
- Laravel开发:Laravel核心——服务容器的细节特性
前言 在前面几个博客中,我详细讲了 Ioc 容器各个功能的使用.绑定的源码.解析的源码,今天这篇博客会详细介绍 Ioc 容器的一些细节,一些特性,以便更好地掌握容器的功能. 注:本文使用的测试类与测试 ...
- 关于angularjs的model的一些问题
有的时候 在一些页面中 我们会需要用到弹出的模态框,这里主要是使用angularjs的uimodel. 页面效果如下: 首先我们需要在JS的controller中导入$uibModal模块. HTML ...
- java开发知识体系
- 反素数ant(数学题)
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2872 Solved: 1639[Submit][St ...
- nginx学习之静态内容篇(五)
1.根目录和索引文件 server { root /www/data; location / { } location /images/ { } location ~ \.(mp3|mp4) { ro ...
- 谷歌浏览器chrome上的firepath ----chropath
图标如下 功能:获取相对xpath,绝对xpath和CSS选择器.在devtools面板中编辑,检查并验证XPath和CSS选择器. 使用方法
- CSS3响应式侧边菜单
在线演示 本地下载
- 剑指offer——扑克牌的顺子
思想: 1.先将输入的几个数进行排序,sort函数是#include<algorithm>下的. 2.统计0的个数,以及相邻数的差值,比较0的个数及差值的和.看是否可以用大王填充中间的差值 ...
- POJ 之 1002 :487-3279
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 242418 Accepted: 42978 Descr ...
- Idea中配置Tomcat7的JNDI
1.进入目录 D:\apache-tomcat-7.0.73\conf\Catalina\localhost 添加hello.xml ,内容为: <Context path="/hel ...