sqluldr2回车换行符处理

sqluldr2快速卸载Oracle数据到文本文件

如果表中某条记录的字段含有回车或换行,不作特殊处理将会导出两行记录。

SQL> select * from test;


A	   B
---------- ----------
中国      1
北京	   1

在上面的汉字后面有一个0x0a换行符,直接导出

yqlong@yqlong-Notebook:~$ sqluldr2 user=scott/tiger file=a.txt  query=test charset=zhs16gbk field='|'
       0 rows exported at 2012-05-04 23:02:22, size 0 MB.
       2 rows exported at 2012-05-04 23:02:22, size 0 MB.
         output file a.txt closed at 2 rows, size 0 MB.
yqlong@yqlong-Notebook:~$ cat -n a.txt 
     1 中国
     2 |1
     3 北京
     4 |1

这样将字段中的换行符直接输出了,导入数据库时肯定是有问题的了。

yqlong@yqlong-Notebook:~$ ./sqluldr2 user=scott/tiger file=a.txt  query=test charset=zhs16gbk field='|' escape='\' escf=0x0a esct=n
       0 rows exported at 2012-05-04 23:16:06, size 0 MB.
       2 rows exported at 2012-05-04 23:16:06, size 0 MB.
         output file a.txt closed at 2 rows, size 0 MB.
yqlong@yqlong-Notebook:~$ cat -n a.txt 
     1 中国\n|1
     2 北京\n|1

这样整条记录就在一行上了。

看文档说明这个工具支持并行的处理,但据说只支持在服务端的并行,到时测试下。

并行处理的参考说明:http://www.dbatools.net/mytools/parallel-inside-sqluldr2.html

user=scott/tiger
query=select * from emp where rowid >= :minrid and rowid < :maxrid
split=emp
degree=4
file=uldrdata.%p.txt
log=log.%p.log

刚才测的时候老是把上面的minrid和maxrid换成实际的rowid,造成每次导出的几个文件都一样。哈哈。直接按上面的写法就可以了哦,不需要替换。

后面再记录将导出的数据加载到GP上。


工具下载请到 http://www.anysql.net/download


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值