我有一个perl脚本,它将文本文件中的记录插入到数据库中。只要记录有像"RODR_Í_GUEZ“这样的多字节字符。我收到错误ORA-01461,但是我距离从varchar2切换到long所需的4000个字符还差得很远
设置:
$ENV{NLS_CHARACTERSET} = 'AL32UTF8'; 在连接之前似乎没有帮助。
使用java客户机(SQuirreL SQL)并手动编写INSERT INTO语句可以很好地插入记录,因此我确信这不是数据库的配置方式。
有什么想法吗?
发布于 2010-12-13 05:43:44
您可能希望设置NLS_LANG环境变量。对于Unix-ish系统,$ORACLE_HOME/server/bin中提供了一个名为nls_lang.sh的脚本,用于根据LANG环境变量为您的系统输出一个合理的值。
例如,对于我的系统(LANG=en_GB.UTF-8),等效的Oracle设置为
NLS_LANG=ENGLISH_UNITED KINGDOM.AL32UTF8更多信息:http://forums.oracle.com/forums/thread.jspa?threadID=381531
Sergiusz在那里的帖子几乎说了所有你需要知道的:我只想补充说,Perl DBD::Oracle驱动程序是基于OCI的,而纯Java JDBC驱动程序不是,因此它们在相同的环境中工作方式不同。
https://stackoverflow.com/questions/4424126
复制相似问题