ociuldr导出文本已经够快了, 也有很多人在用了, 为了不影响现有的使用者, 给这段时间优化过(提速25%以上)的版本取了一个新的名字: sqluldr, 和Oracle的sqlldr相对应. 其实一直都想用这个名字的, 但因为性能不够, 不好意思使用, 在测试性能后, 现在敢用了, 作为ociuldr的企业版.

    新版本的命令行帮助输出, 改成了如下所示.

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


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

Valid Keywords:
  user  = username/password@tnsname
  sql    = SQL file name
  query  = select statement
  field  = seperator string between fields
  record = seperator string between records
  head  = print row header(Yes|No)
  file  = output file name(default: uldrdata.txt)
  read  = set DB_FILE_MULTIBLOCK_READ_COUNT at session level
  sort  = set SORT_AREA_SIZE at session level (UNIT:MB)
  hash  = set HASH_AREA_SIZE at session level (UNIT:MB)
  serial = set _serial_direct_read to TRUE at session level
  trace  = set event 10046 to given level at session level
  table  = table name in the sqlldr control file
  mode  = sqlldr option, INSERT or APPEND or REPLACE or TRUNCATE
  log    = log file name, prefix with + to append mode
  long  = maximum long field size
  array  = array fetch size
  buffer = sqlldr READSIZE and BINDSIZE, default 16 (MB)
  width  = customized max column width (w1:w2:...)

  for field and record, you can use '0x' to specify hex character code,
  \r=0x0d \n=0x0a |=0x7c ,=0x2c \t=0x09

    Windows版本提供下载, 但仅供个人使用, 商业使用则需要付费. ociuldr的源代码仍可下载, 但sqluldr则不再提供源代码下载, 其他操作系统平台的也不提供下载. 此外还增加了一个网友要求的选项(width), 可在导出固定长度文本时, 精确控制各个列的宽度.

sqluldr scott/tiger sql=emp.sql width=5:20:20 ...

    如果对性能没有极端要求, 没有必要换到sqluldr. 有些数据仓库的应用, 或是抽取数据给搜索引挚, 或是用文本方式来归档保存巨量数据的情况下, 则可以考虑升级到sqluldr来导出文本.