ociuldr的更新, 为了更好的long类型支持

    以前一直以为sqlldr不能装载大于4k大小的文本, 原来这个理解是错误的. 但是在免费的文本导出程序ociuldr中, 没有充分考虑long类型. 第一, 用于fetch的数组大小是固定的500, 第二默认的long类型导出长度是4000. 最主要的原因是ARRAY固定为500不是件好事, 如果我指定long的导出长度为1MB, 那不是得用掉500M的系统内存?

    在最新的改进中, ARRAY SIZE的默认值变为50, 最小值为5, 最大值为2000, LONG类型的默认导出长度为32K, 还有就是LONG类型的导出长度乘以ARRAY SIZE的值不能超过100MB, 如果超出, 则ARRAY SIZE的值变为100MB除以LONG导出长度后的值, 如果不足5, 则设为5. 命令行帮助中多了两行:

       long  = maximum long field size
       array = array fetch size

    在生成控制时, LONG类型也能自处理, 生成的字段定义如下所示:

--
-- Generated by OCIULDR
--
OPTIONS(BINDSIZE=8388608,READSIZE=8388608,ERRORS=-1,ROWS=50000)
LOAD DATA
INFILE 'uldrdata.txt' "STR X'06'"
INTO TABLE t_views
FIELDS TERMINATED BY X'07' TRAILING NULLCOLS
(
  OWNER CHAR(30),
  VIEW_NAME CHAR(30),
  TEXT CHAR(32768)
)

    其中TEXT是视图的定义, 我已经在本地试过了, 导入了10K大小的视图定义.

留言 (1)

ociuldr 是我最喜欢的工具了, array = array fetch size 更是令我爱不释手.

稍微泼点冷水, LONG 类型都要被淘汰了, 研究一下各种 CLOB, BLOB 吧, 嘻嘻

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • How many years have you been playing pingpong?
  • 你打乒乓球多少年了?
  • My favorite winter sport is skiing.
  • 我最喜欢的动机运动是滑雪.
  • The basketball championship is exciting.
  • 那次篮球冠军赛真激动人心.
  • I was on the track team 10 years ago.
  • 十年前, 我在田径队.
  • I prefer fishing to swimming.
  • 比起游泳, 我更喜欢钓鱼.