« ociuldr更新(2008/01/25) »
Tools » http://www.anysql.net/tools/ociuldr_update_20080125.html 2008-01-25到现在为止, 免费文本导出小工具(ociuldr)的累计下载次数已经突破5000次, 已经有很多的知名的大公司, 选择下载源代码, 进行编译和使用, blue_prince在阿里巴巴更是创下了导出文本速度的新记录.
而我大约是这个工具的最大用户吧, 昨天花了二个小时, 给数据仓库组导了10亿条记录, 在导的过程中发现了一个无关紧要的小问题, 当文字类型字段不是从表中直接来时, 可能会分配过多的内存. 如下所示.
C:\>ociuldr user=test/test query=”select ” from dual”
1638450 bytes allocated for column ” (1)0 rows exported at 2008-01-25 08:39:37
1 rows exported at 2008-01-25 08:39:37
output file uldrdata.txt closed at 1 rows.
引起这个问题的原因是由于OCI接口不能正确地估计返回字段的长度, 在以前的测试中没有试这种占位列,因此没有发现.
C:\>ociuldr user=test/test query=”select ” from dual”
200050 bytes allocated for column ” (1)0 rows exported at 2008-01-25 08:42:56
1 rows exported at 2008-01-25 08:42:56
output file uldrdata.txt closed at 1 rows.
对于这个小问题, 你可以不理, 当然如果心里觉得不爽, 就下载新的吧!
Tags: CSV, Excel, Export, Oracle, SQLLDR, Tools


不错,不错
支持,支持。。
嗯,很好很强大!
最快速度应该是这个:
0 rows exported at 2007-11-28 15:43:09
171135273 rows exported at 2007-11-28 15:53:04
78947.4375 MB的表:
78947.4375/10/60
—————-
131.579063
平均导出速度132MB/S
很邪恶,很强大呀
很爽, 很正点啊?
5000次, 木匠就占了5~10次, 排重, Deduplicate. 嘻嘻.
我已经除掉一些了, 还没有算上从英文页面过来访问的次数,再说你重新下载是为了获得更新版本吧.
能够被5000个Oracle DBA/Developer 使用, 已然是很自豪的事情了.
仰望中.
另外, 建议你设一个 类似 PayPal 的捐钱帐户.
我一直等着给你捐钱哩.
大部份人是一分钱都不会支持的, 不指望这样的捐钱方式, 没有多少意义.
捐助就算了, 觉得好就帮我多多推荐一下就行了.
How to compile on Linux?
Is this your latest source code?
http://www.anysql.net/software/ociuldr.c
是最新的, 有时我更新了代码, 会上传但不一定写Blog说明更新.
我在JAVA工程中使用到ociuldr进行导出数据,命令如下:/home/cms/temp_file/ociuldr/ociuldr user=”campaign/campaign@cmsdb” query=”select usr_id from user_info where (BRND_CD = 1) and (VIP_LVL_CD = 2) and (USR_STS_CD = 0) ” file=”/home/cms/temp_file/cms/全球通金卡(正使用)客户.txt”。直接运行可以导出数据,在java代码中调用输出如下:
OUTPUT>Cannot connect as “campaign/campaign@cmsdb”.
OUTPUT>Connection failed. Exiting…
java运行的用户和刚才登陆的用户是同一个用户,单不是oracle的安装用户。
请问这有可能是什么原因?
在ociuldr这个Shell脚本中写死ORACLE_HOME的位置就可以了。
在哪里下载.exe文件呢?
现在都用sqluldr2了.
下载: http://www.anysql.net/software/sqluldr.zip
ociuldr,这个工具生成SQLLDR的控制文件时,如果表的字段类型为Number时,CTL文件为Char(1),但这个字段有时存的为-1,在导入时就会出错。