针对报错“在类路径中添加 orai18n.jar”
JDBC连接Oracle获取数据时,有时可能报 java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……导致的原因是Jar运行环境和Oracle返回的字符格式不一致,报错建议添加“orai18n.jar”有部分大佬寻求修改数据库字符集的方式,然而部分客户数据库不容修改,丢下的问题只能开发来补坑,程序兼容性就至关重要了!以前同
·
JDBC连接Oracle获取数据时,有时可能报 java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
导致的原因是Jar运行环境和Oracle返回的字符格式不一致,报错建议添加“orai18n.jar”
有部分大佬寻求修改数据库字符集的方式,然而部分客户数据库不容修改,丢下的问题只能开发来补坑,程序兼容性就至关重要了!
以前同事代码:
while (rs.next()) {
ResultSetMetaData metaData = rs.getMetaData();
int colN = metaData.getColumnCount();
Map<String, Object> mapRS = new LinkedHashMap<String, Object>();
for (int i = 1; i <= colN; i++) {
String columnName = metaData.getColumnLabel(i).toLowerCase();
Object value = null;
int columnType = metaData.getColumnType(i);
if (columnType == 93) {
value = rs.getTimestamp(columnName);
} else {
if (columnType == 2005) {
value = extractClobString(rs, columnName);
} else{
value = rs.getObject(columnName);
}
}
mapRS.put(columnName, value);
}
list.add(mapRS);
}
结果一直获取不到数据,试了各种办法都没成功(项目没有使用MAVEN,普通java项目没问题,可一部署到致远环境,没有任何效果),回想自己以前连oracle也没这么麻烦(代码不是自己写的,看着头疼),可能技术比较老了,没有这么多花里胡哨,就改了一个地方完美取值(rs.getObject(columnName); --> rs.getObject(i);)jar包都不需要了
更多推荐
已为社区贡献1条内容
所有评论(0)