1.报错内容
出现 java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
Exception in thread "main" java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:233)
at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:194)
at oracle.jdbc.driver.PhysicalConnection.throughDbCharset(PhysicalConnection.java:10402)
at oracle.jdbc.driver.PhysicalConnection.enquoteIdentifier(PhysicalConnection.java:10479)
at oracle.jdbc.driver.OracleStatement.enquoteIdentifier(OracleStatement.java:6452)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3853)
at oracle.jdbc.driver.InsensitiveScrollableResultSet.findColumn(InsensitiveScrollableResultSet.java:270)
at oracle.jdbc.driver.GeneratedResultSet.getString(GeneratedResultSet.java:596)
at com.courage.apacheDBUtils.DBUtilsTest.main(DBUtilsTest.java:17)
2.解决办法:(引入依赖)
<!--数据库是19c对应的的依赖-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.15.0.0</version>
</dependency>
<!--不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK 注:这个依赖基本跟上面Oracle数据版本一致-->
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>19.15.0.0</version>
</dependency>
出现这个问题的原因是:我们部分数据库编码是 :ZHS16GBK
查看数据库编码:select * from nls_database_parameters where parameter =’NLS_CHARACTERSET’;