今天加夜班修改bug,在oracle10g中执行函数是没有问题的,但是调用的时候总报错:
关于怎么修改数据库字符集问题:集中有用代码如下,在网路上搜的,由于本人没有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作为参数是没有问题的,其他字符集没有做尝试。