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 to initialize timezone information"
// *Cause: The timezone information file was not properly read.
// *Action: Please contact Oracle Customer Support.

    但经过检查没有什么Timestamp类型的列啊? 而且单独运行是可以的. 几经周折, 最后发现在程序中指定了使用9205的sqlldr, 而Shell登录进去时设的环境变量还是8174的. 检查一下环境变量设置.

% env | grep ORACLE_HOME
ORACLE_HOME=/export/home/oracle/products/8174x64

    为什么他们要作这个变动呢? 因为他们想用Direct Load, 其实Direct Load要求sqlldr的版本和数据库的版本一致, 因此9203的客户端也是不行的, 还是改回8174的吧, 通过加大BINDSIZE和READSIZE来优化sqlldr的速度算了.

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • What's your nationality?
  • 你是什么国籍?
  • What's your motherland?
  • 你祖国是哪儿?
  • Are you a native Chinese?
  • 你是土生土长的中国人吗?
  • What's the population of China?
  • 中国有多少人口?
  • How many provinces do you have?
  • 你们有多少个区?