关于ORACLE字符集的问题

今天加夜班修改bug,在oracle10g中执行函数是没有问题的,但是调用的时候总报错:

 ORA-01460: unimplemented or unreasonable conversion requested  找了半天,在网上说是字符集编码的问题,我通过两个对比两个数据库发现编码是不一样,在另一台服务器上的NLS_CHARACTERSET 为ZHS16GBK ,而另外一台的数据位UTF8。但是为什么使用UTF8报错,还有待研究,今天晚上仅仅是记录下错误。查看ORACLE的 字符集可以使用select * from nls_database_parameters语句。

关于怎么修改数据库字符集问题:集中有用代码如下,在网路上搜的,由于本人没有DBA的权限,所以没有办法修改。

尝试使用以下命令来修改字符集,结果失败了:
shutdown immedaite;
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_process=0;   --执行这句报错
Alter database open;
Alter database character set ZHS16CGB231280;  --执行这句说只允许修改到超集

 

下面总结下出现这种错误的原因:

1、就是上述的出现的字符集问题;

2、JDK的版本问题;

3、连接ORACLE驱动包的原因。

 

在UTF8字符集的空间中,写函数或者存储过程的参数不能使用NVARCHAR2 而是VARCHAR2,否则即使函数编译能通过,但是使用时会报错。本人只是在UTF8的情况下出现了这个问题,在ZHS16GBK中使用NVARCHAR2作为参数是没有问题的,其他字符集没有做尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值