linux 建库 ora 12714,ORA-12714: invalid national character set specified

博主在尝试将本地完成的功能导入到‘正式测试库’时,遇到ORA-12714错误,该错误涉及国家字符集。问题出现在使用nvarchar2类型的嵌套表字段上。通过对比发现,本地库与‘正式测试库’的Oracle版本不同,本地为11.1,测试库为10.2.0.1。升级测试库到10.2.0.4后,问题解决。这可能是一个Oracle的版本相关BUG。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个项目,一些模块基本完成,准备搭建一个“正式测试”库,把做好的功能先让试用一下。因为没有多少数据,所以就用exp/imp导入了,导出导入都很正常,没有任何报错。

这么快就弄好了,先用应用程序连上去试试吧。。。结果。。。悲剧了。很多个包体都处于不可用状态,手动去编译一下,就报错:ORA-12714: invalid national character set specified。于是就直接从本地库复制一个包的脚本执行一下,还是报这个错。怎么会报这个错,“指定的国家字符集无效”?怎么会,本地都是好好的呀。

出了错误,只能分析一下了,双击了错误,发现是包中一个分页查询的存储过程有问题。最后定位到,这个查询是查询一个嵌套表。就觉得更奇怪了,嵌套表用了很长时间了,一直没遇到过这个问题。后来经过检查发现,报错的都是嵌套表中定义为nvarchar2的字段,于是单独测试了一下,果然是用varchar2就没有问题,用nvarchar2就问题。但本地也用的是nvarchar2类型呀,怎么不报错?突然想到是不是版本不一样!检查了一下发现,本地两个库的版本分别是11.1和10.2.0.4。而“正式测试库”的版本是10.2.0.1,于是就升级一下版本,升级到10.2.0.4,再导入就OK了。

总结:到最后也没有找到原因,还是感觉挺奇怪了。但是通过升级的办法还是解决了,看样子应该是某种ORACLE的BUG了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值