将 Oracle 集合与瘦 JDBC 结合使用时的全球化问题

Posted

技术标签:

【中文标题】将 Oracle 集合与瘦 JDBC 结合使用时的全球化问题【英文标题】:Problems with globalization when using Oracle collections with thin JDBC 【发布时间】:2008-10-17 12:41:08 【问题描述】:

总结问题:

    当 DB 编码为 Western ISO 8859-2 时,在 Java 1.5 (JDBC) 中检索字符串可以正常工作 当切换到东欧 ISO(例如 ISO 8859-5)时,所有正常的 JDBC 字符串转换都可以工作,除了涉及 Oracle 集合的转换,例如对象的嵌套表。我得到的不是正确的字符串,甚至是简单的字符串,例如“1”,而是“???” (三个问号)。

我尝试了以下 10.2.0.4 JDBC Jar 文件,但无济于事:

ojdbc14.jar orai18n.jar

我还尝试了 CHAR 和 VARCHAR2,它们的行为相同。

【问题讨论】:

【参考方案1】:

您可能想尝试使用 NVARCHAR2 类型。

这种类型更适合非英文字符。

【讨论】:

这是一个很好的解决方法,我自己不久前才想到它。尽管如此, orai18n.jar 应该可以工作,但是我遇到了一些奇怪的错误。顺便说一句,某些字符串中的字符显示为“???”只是简单的 ASCII 码!

以上是关于将 Oracle 集合与瘦 JDBC 结合使用时的全球化问题的主要内容,如果未能解决你的问题,请参考以下文章

使用jdbc查询impala时的超时问题

从 oracle 获取 blob 数据时的限制

尝试传递自定义 oracle 类型对象映射时的名称模式无效

胖客户端与瘦客户端

集合多线程网络编程JDBC连接池反射综合应用

将 SWIG 与 C# 结合使用时的最佳实践是啥?