在AnySQL.net中搜索标签(Tags) 'SQLLDR' 的结果:
ociuldr更新(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...
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...
Internal error: ulconnect: OCIInitialize [1804]
一个用sqlldr来装载数据的批处理角本发生了如上错误. % 9205/bin/sqlldr *****/*****@***** control=testsqlldr.ctl data=..... SQL*Loader: Release 9.2.0.5.0 - Production on Tue Aug 7 18:00:35 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL*Loader-704: Internal error: ulconnect: OCIInitialize [1804] 一开始我以为1804就是ORA-01804, 于是就用oerr查错误信息. 01804, 00000, "failure...
终于给ociuldr加上退出代码了
半年多前有人提出这个需求, 当时我也没有空去处理这事, 就搁下了. 今天将程序改动了一下, 增加了退出代码, 退出代码的含义如下: 0 = Successful 1 = Cannot login to database 2 = Cannot create cursor handle 3 = Cannot prepare SQL statement 4 = Cannot execute SQL query 5 = Cannot get the...
ociuldr小工具的新选项, 指定log文件
ociuldr工具(文档)越来越被人接受, 还有一位外国人特意发邮件来告诉我说, 他成功地将这个工具用于一个项目中. 即使是小工具, 也需要花不少时间去完善和维护的. 今天为这个工具新增了一个小选项: log = log file name, prefix with + to append mode 用法如下: ociuldr user=ansyql/anysql@s8i query="select * from tab" log=tab.log ociuldr user=ansyql/anysql@s8i query="select * from tab" log=+tab.log 指定log选项后, 运行ociuldr后将不会在屏幕上打印出log信息....
AUL升级, 更改sqlldr控制文件选项的默认值
AUL在恢复成文本格式时, 可以自动生成一个sqlldr的控制文件, 这极大地方便和简化了数据恢复的过程, 在实际的使用中, 遇到了几个sqlldr的问题. 为了方便恢复, 改更了一些默认值. 在本次修改以前, 控制文件的选项为: -- -- Generated by AUL/MyDUL, for table anysql.mem_member -- OPTIONS(DIRECT=TRUE,READSIZE=4194304,ERRORS=-1,ROWS=50000) LOAD DATA 更改后, 取消了DIRECT设置, 采用默认值; 增加了BINDSIZE值; 将READSIZE的值增大了. 新版本的选项如下: -- -- Generated by AUL/MyDUL, for table anysql.mem_member --...
使用sqlldr工具中遇到的几个问题
第一个是在用高版本的sqlldr向低版本的数据库中装载数据时遇到的, 解决的方法是将DIRECT=TRUE去掉, 不用DIRECT方式装载. 错误信息为: SQL*Loader-951: Error calling once/load initialization ORA-00942: table or view does not exist 第二个问题是, sqlldr装载很慢, 一开始几乎以为是sqlldr死了, 装载几十条记录恢然等了足足十几分钟, 不管是DIRECT方式还是常规方式. 最后仔细地检查了一下, 原来是数据库中表的字段定义小了, 在log中报字段值过长, 改了就好了. 第三个问题的情况和上面一个一样, 只不过最后的原因是因为出问题的数据库的字符集是UTF8, 而好的那个数据库的字符集是ZHS16GBK, 一些中文转换成UTF8时变长了, 导致了和字段不够长一样的效果. 其中第二个问题是别人遇到的, 当时他用805版本的sqlldr试的,...
在ociuldr的SQL中使用绑定变量
在以前的ociuldr中不能使用绑定变量, 现在作了一些改进, 允许传入最多20个绑定变量(我想也够用了吧), 所有的变量类型都被当作VARCHAR2类型. 这样的改进不知道是否有必要, 还不得而知. SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ -------------- ---------- AULEXT TABLE A_SEQ_SYN SYNONYM A_V VIEW OBJD_LIST TABLE T TABLE TRANSACTION_CACHE_IOT_0 TABLE T_HASH TABLE T_LOB TABLE T_LONG TABLE T_LONGRAW TABLE T_TRUNC2 TABLE T_TRUNC4 TABLE 12 rows selected. C:MYDUL>ociuldr user=anysql/anysql@test...
十六进制的ASCII代码表
00NUL01SOH02STX03ETX04EOT05ENQ06ACK07BEL 08BS 09HT 0ANL 0BVT 0CNP 0DCR 0ESO 0FSI 10DLE11DC112DC213DC314DC415NAK16SYN17ETB 18CAN19EM 1ASUB1BESC1CFS 1DGS 1ERS 1FUS 20SP 21! 22" 23# 24$ 25% 26& 27' 28( 29) 2A* 2B+ 2C, 2D- 2E. 2F/ 300 311 322 333 344 355 366 377...
如何用SQLLDR装载UNICODE字符集的列?
周末有人在玩AUL时向我提了个问题, 还真不知道如何回答. 他说在他们的库中有NCHAR/NVARCHAR2类型的列, 用AUL恢复成文本格式时, 有部份列的数据存成了UNICODE编码. 如何将这些数据用SQLLDR装入到数据库中? 下面是一个测试表(COL1 NVARCHAR2(100), COL2 NVARCHAR2(100)), 插入两条数据, 然后用AUL去恢复成文件, 用竖线分隔字段, 如下所示: N C O L 1| N C O L 2 N C O L 1| N C O L 2 ...
ociuldr支持分成几个文件导出了
一网友导出了7亿多条记录之后, 生成了一个50g大小的文本文件, 却发现Perl处理起来比较难, 于是问我是不是可能导出成几个文件. 现在对程序作了改进, 增加了一个命令行选项:batch. 指定在几个batch后切换文件名, 默认一个batch是50万条记录, 如果指定batch为2就表示100万条记录换一个文件. 默认这个选项值是0, 就是指不生成多个文件. 在指定batch选项后, 请指定file选项来定义生成的文件名, 中间请包含"%d"字样, 在生成文件时, "%d"会被打印成序号. 例如要导出下面的表: SQL> SELECT COUNT(*) FROM T_OBJID; COUNT(*) ---------- 2430720 用如下命令进行导出, 请观查log输出: C:\TEMP>ociuldr user=anysql/anysql query="select * from t_objid" batch=2 file=test_%d.txt...
ociuldr小工具的新选项 -- table
给我的小工具ociuldr加了一个命令行选项: table = table name in the sqlldr control file 默认这个选项的值为空, 这样的话就不会生成用于sqlldr装裁的控制文件, 如果定义了这个选项的值, 则会生成"表名_sqlldr.ctl"这样的控制文件, 以方便使用. C:\TEMP>ociuldr user=anysql/anysql query="select * from tab" table=tab 0 rows exported at 2006-11-16 21:49:12 5 rows exported at 2006-11-16 21:49:12...
ociuldr可自动生成SQL*Loader装载的控制文件
sqlldr工具现在可以生成SQL*Loader的控制文件信息了, 这样可以极大地方便我们移植数据了, 如下所示: C:\TEMP> ociuldr user=anysql/anysql@prod query="select sysdate from tab" -- -- Generated by OCIULDR -- OPTIONS(BINDSIZE=4194304,READSIZE=4194304,ERRORS=-1,ROWS=50000) LOAD DATA INFILE 'uldrdata.txt' "STR X'0a'" INTO TABLE <table_name> FIELDS TERMINATED BY X'2c' TRAILING NULLCOLS ( TNAME CHAR(30), TABTYPE CHAR(7), CLUSTERID CHAR(40)...
AUL/MyDUL生成SQL Loader控制文件的一个小问题
今日偶儿发现AUL/MyDUL在生成SQL Loader的控制文件时, 有一个参数的设置好象有些问题, 如果不改动的而直接装载的话, 会跳过第一行记录. 数据没有影响的, 请大家放心. 这些参数值拷贝自另一个工具, 在那个工具中我将字段名作为文本文件的第一行, 在AUL/MyDUL恢复成文本格式时, 没有打印字段名, 因此如果SKIP参数设为1的话, 就会跳过一行. 不便之处, 请大家见谅. 原来的AUL/MyDUL输出的控制文件例子: -- -- Generated by AUL/MyDUL, for table hr.test -- OPTIONS(DIRECT=TRUE,READSIZE=4194304,ERRORS=-1,SKIP=1,ROWS=50000) 程序已经修改并上传到网站了, 新版本输出的控制文件例子: -- -- Generated by AUL/MyDUL, for...
用SQLLDR来装载CLOB/BLOB列的控制文件例子
Oracle的SQLLDR是用来将文本文件中的记录装载到数据库中的工具, 其并行(Parallel),直接(Direct)的装载模式是目前所知最快的方式. 不过用于指定文本格式的控制文件有点难于写, 我在写时也经常需要查阅文档. 为了方便我还是在这儿写一个例子吧, 下面是样表的结构: SQL> create table test( 2 num_col number(10), 3 char_col char(10), 4 var_col varchar2(10), 5 date_col date, 6 blob_col blob, 7 ...
用SQLLDR装载数据的一次小事故
今天用SQLLDR装载数据, 没有足够的注意, 管应用程序的人说, 我们装载的数据不对, 后面多了一个空格. 过了好一会儿我们才查到原因, 居 然是因为Windows和Linux/Unix的文本编辑器中对换行的不同处理, 在Windows中是用0x0d(13),0x0a(10)两个字符来表示的, 而Linux/Unix中只用一个字符0x0a (10)来表示. 将Windows上编辑好的文本文件以Binary方式FTP上去(或以SCP拷上去)后, 用Linux/Unix下的SQLLDR装载, 因此装载进去的数据中就多了一个字符, 如下所示: SQL> SELECT DUMP(COL1) FROM T_TEST WHERE ROWNUM < 10; DUMP(COL1) ---------------------------------------------------- Typ=1 Len=4: 35,32,50,13 Typ=1 Len=3: 35,49,13 Typ=1 Len=9: 45,68,69,76,69,84,69,45,13 ...... ...
站内搜索 | Search
总数: 512 | 留言: 1560
- Name: Fangxin Lou
- MSN: anysql©live.com
- Mail:anysql©yahoo.com
anysql©gmail.com - Skype: anysql
- AIM: loufangxin
- Mobile:008615925611590
分类 | Categories
软件下载:
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql