首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将perl中的多字节字符插入oracle时遇到ORA-01461

将perl中的多字节字符插入oracle时遇到ORA-01461
EN

Stack Overflow用户
提问于 2010-12-13 05:25:07
回答 1查看 1.1K关注 0票数 4

我有一个perl脚本,它将文本文件中的记录插入到数据库中。只要记录有像"RODR_Í_GUEZ“这样的多字节字符。我收到错误ORA-01461,但是我距离从varchar2切换到long所需的4000个字符还差得很远

设置:

代码语言:javascript
复制
$ENV{NLS_CHARACTERSET} = 'AL32UTF8';  

在连接之前似乎没有帮助。

使用java客户机(SQuirreL SQL)并手动编写INSERT INTO语句可以很好地插入记录,因此我确信这不是数据库的配置方式。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-13 05:43:44

您可能希望设置NLS_LANG环境变量。对于Unix-ish系统,$ORACLE_HOME/server/bin中提供了一个名为nls_lang.sh的脚本,用于根据LANG环境变量为您的系统输出一个合理的值。

例如,对于我的系统(LANG=en_GB.UTF-8),等效的Oracle设置为

代码语言:javascript
复制
NLS_LANG=ENGLISH_UNITED KINGDOM.AL32UTF8

更多信息:http://forums.oracle.com/forums/thread.jspa?threadID=381531

Sergiusz在那里的帖子几乎说了所有你需要知道的:我只想补充说,Perl DBD::Oracle驱动程序是基于OCI的,而纯Java JDBC驱动程序不是,因此它们在相同的环境中工作方式不同。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4424126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档