有天看见某位仁兄, 在找一个从Oracle导出文本的工具的Key, 看来工具不加Key就是不容易让人记住, 所以给最新的SQLULDR2加一下. SQLULDR2功能在性能及功能上比免费的ociuldr都有所增强, 但本质功能没有变. 如果要处理几十个GB的文本导出, 则还是值得升级到SQLULDR2的, 否则OCIULDR就够了.

    没用Key时, 命令行输出如下, 第三行表示是未注册版本.

D:\>sqluldr2

SQL*UnLoader: Fast Oracle Text Unloader Release 3.0.0
(@) Copyright Lou Fangxin 2004/2008, all rights reserved.
Unregisted, maximum 500000 rows, restricted version.

Usage: SQLULDR2 keyword=value [,keyword=value,...]
......

    用KEY命令行选项指定Key文件时, 命令行输出如下, 第三行表示是是注册版本, 并且会显示注册给谁的.

D:\>sqluldr2 key=anysql.key

SQL*UnLoader: Fast Oracle Text Unloader Release 3.0.0
(@) Copyright Lou Fangxin 2004/2008, all rights reserved.
Registered, licence grant to Fangxin.Lou, full version.

Usage: SQLULDR2 keyword=value [,keyword=value,...]
......

    注册版本和未注册版的主要区别如下, 首先是记录数限制, 未注册版本一个SQL最多导出50万行.

D:\>sqluldr2 parfile=testpar.txt
      0 rows exported at 2009-04-02 19:09:10
  500000 rows exported at 2009-04-02 19:09:13
        output file uldrdata.txt closed at 500000 rows.

    第二点是不能自动生成Oracle SQL*Loader装载用的控制文件, 即使是加了TABLE选项.

D:\>sqluldr2 parfile=testpar.txt
      0 rows exported at 2009-04-02 19:09:10
  500000 rows exported at 2009-04-02 19:09:13
        output file uldrdata.txt closed at 500000 rows.

    第三点是不能输出到屏幕(STDOUT), 因此不能进行管道(pipe)重定向操作.

D:\>sqluldr2 parfile=testpar.txt file=-
      0 rows exported at 2009-04-02 19:12:38
      14 rows exported at 2009-04-02 19:12:38
        output file - closed at 14 rows.

    第四点是不能指定batch选项, 导出成多个文本文件. 估计这个又要引起大家的非议了, 注册版本只需要200块钱, 永久有效.