甲骨文,utf-8,NVARCHAR2,以及很多混乱
我在oracle 10g数据库中有以下“翻译”表:
当我尝试这样做时:
然后我运行这个:
并且翻译栏显示:S而不是 – 我不明白为什么. 由于遗留问题,我无法将整个数据库转换为使用UTF-8,还有其他选择吗? 目前国家字符集是AL16UTF16.普通字符集是WE8ISO8859P1. 我目前正在使用java 1.6 以上是一个简化的例子.以下是我的实际应用程序中的查询:
这里的问题是,而不是添加?ufs它添加?ufs 最佳答案
由于您使用的是绑定变量而不是硬编码的文字,因此您应该能够将Unicode字符串传递给UPDATE语句.
如果您使用直接JDBC写入数据库,则writing data to a NVARCHAR2 column上的JDBC Developer’s Guide中有一个示例.如果您使用的是1.5 JVM,则必须对每个NVARCHAR2列使用OraclePreparedStatement.setFormOfUse调用.在1.6 JVM中,生活变得更容易,因为JDBC 4.0添加了NCHAR和NVARCHAR2类型.如果您使用的是1.5 JVM,那么使用像Spring这样的ORM框架来使用Oracle的JDBC扩展可能是一件非常重要的事情.我对Spring不熟悉,知道要实现这些步骤需要哪些步骤. 您可能可以修改连接字符串以指定defaultNChar = true.这将强制驱动程序使用国家字符集处理所有字符列.这可能足以解决您的问题,而不会让Spring使用OraclePreparedStatement扩展. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |