【问题标题】:java.sql.SQLException: Non supported character set: oracle-character-set-178java.sql.SQLException:不支持的字符集:oracle-character-set-178
【发布时间】:2016-08-14 23:55:38
【问题描述】:

我的应用程序使用以下配置运行 汤姆猫 - 6.0.18 数据库-Oracle 11g 企业版(11.2.0.2.0) Java 版本 - jdk 1.6 JDBC 驱动程序 - OJDBC14.jar(不确定确切的版本)

当我将 Oracle 数组类型值从 java 传递到存储过程时,我收到 Oracle-Character-set-178 错误。在下面找到错误消息。

java.sql.SQLException:不支持的字符集:oracle-character-set-178

下面是我正在执行的代码

String query = "{call DBA.SP_XXXX(?,?,?)}"; 
con = this.getConnection();
con=((DelegatingConnection) con).getInnermostDelegate();
oracle.sql.ArrayDescriptor descrip =oracle.sql.ArrayDescriptor.createDescriptor("DBA.ARRAY_TABLE", con);            
oracle.sql.ARRAY oracArray = new oracle.sql.ARRAY(descrip, con, arrayValue);
cs = con.prepareCall(query);                
cs.setString(1,ID); 
cs.registerOutParameter(2, java.sql.Types.VARCHAR); 
cs.setObject(3,oracArray); 
cs.execute();   

以下是我的 oracle 返回的字符集值

参数值

NLS_CHARACTERSET WE8MSWIN1252 NLS_NCHAR_CHARACTERSET AL16UTF16

我不确定 OJDBC14.jar 的确切版本是否在我当前的设置中运行,但是当我尝试用最新的 OJDBC14 替换并出现以下错误时 java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/sql/converter/CharacterConverters;

请告诉我什么是问题和解决方案

【问题讨论】:

  • 你为什么使用旧的 ojdbc14.jar 而不是更高版本,比如 ojdbc6.jar?你的类路径中还有什么——例如,你选择了哪个 orai18n.jar?我认为您只是版本不匹配。
  • 感谢亚历克斯,当我更换最新的 ojdbc6.jar 时,出现以下错误“java.lang.SecurityException:密封违规加载 oracle.jdbc.internal.ObjectData:包 oracle.jdbc.internal 已密封”
  • 对不起,我忘了提,支持 oracle 11g 的最新 orai18n.jar 也添加到类路径中

标签: arrays oracle11g tomcat6 ojdbc oracle-type


【解决方案1】:

有同样的错误!

我使用的是 spring,所以如果你也这样做了,它会用 add the orai18n.jar to classpath 之类的东西引导你进入错误,这就是你应该做的,但如果你这样做并且错误坚持出现,mkdir a lib dir 到你的根目录并用你选择的版本的 oracle jar 填充它,并使用 maven 插件在你的编译中包含 jar。

任何 jar 都应该由编译范围提供,这样您就不会遇到生产错误。

【讨论】:

    【解决方案2】:

    通过以下解决方案解决了我的问题:将 ojdbc14.jar 替换为支持我的 oracle 11.2.0.2 的 ojdbc6.jar 和 orai18n.jar 的确切版本。

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2018-02-18
      • 2014-01-03
      • 1970-01-01
      • 2011-02-20
      • 2022-06-22
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      相关资源
      最近更新 更多