【问题标题】:DB2 giving nio.unsupportedcharsetexception CP836 while trying to access date fieldsDB2 在尝试访问日期字段时给出 nio.unsupportedcharsetexception CP836
【发布时间】:2021-02-16 15:01:30
【问题描述】:

DB2 在尝试访问日期/时间戳字段时给出 nio.unsupportedcharsetexception CP836。我正在使用 db2jcc4.jar 作为 DB2 的驱动程序。 我收到以下异常 java.nio.charset.UnsupportedCharsetException: Cp836

我正在尝试使用 DBeaver 和 Squirrel 都只提供这么多的堆栈跟踪。

并且正在使用 z/os 平台 java版本:1.8 能够选择列值,如果该列不是日期/时间戳类型 连接字符串:jdbc:db2://********:451/***B

【问题讨论】:

  • 另外,检查您与 DBeaver 一起使用的 JRE/jvm/jdk。见ibm.com/support/pages/…
  • 更新了问题,如果需要更多信息,请告诉我
  • 请编辑问题,以纯文本形式显示完整异常文本,以及连接字符串(带有屏蔽的私人信息)。
  • 如果从lib 目录运行以下命令没有返回任何行,那么您应该尝试另一个jvm。 jar -tvf charsets.jar | grep IBM836

标签: date timestamp db2 driver dbeaver


【解决方案1】:

这是一个配置问题。

检查您在 DBeaver 中使用的 jre(Oracle/Sun、IBM 或其他)。

https://www.ibm.com/support/pages/errorcode-4220-received-when-using-ccsid-13124cp836-connect-as400-db-using-db2-jcc-type-4-driver

特别是这个建议:

IBM 为 IBM 机器处理的每个 CCSID 提供字符集支持。

Oracle/Sun JDK/JRE 使用 charsets.jar 提供字符映射 在 UTF-8 和各种代码页之间。

Oracle/Sun jre 具有单独的国际安装,并且 本地化安装不会包含所有转换类。所以你会 需要获取完整的JDK安装。

最好使用最新的 IBM JDK。它包含 rt.jar 和 charsets.jar 包含类文件 ByteToCharCp836.class。

在这里下载:

https://www.ibm.com/developerworks/java/jdk/index.html

【讨论】:

  • 我正在使用 oracle jre.. 我将尝试使用 ibm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多