【问题标题】:How to insert Chinese characters in Oracle DB using Java如何使用 Java 在 Oracle DB 中插入汉字
【发布时间】:2012-06-18 10:23:49
【问题描述】:

我需要使用Java(hibernate 3.0 /jpa)在Oracle数据库中插入汉字,我尝试了很多方法都失败了。

当我坚持我在字段中看到 (??? ) 的实体时,当我检索该值时,我看到了相同的结果。

我的甲骨文NLS_DATABASE_PARAMETERS:

NLS_CHARACTERSET   WE8MSWIN1252
NLS_NCHAR_CHARACTERSET  AL16UTF16 

列类型为 Nvarchar。我在 persistence.xml 中设置了这个属性

<property name="hibernate.connection.useUnicode" value="true"  />
<property name="hibernate.connection.characterEncoding" value="UTF-8"/>
<property name="hibernate.connection.charSet" value="UTF-8"/>

【问题讨论】:

    标签: java oracle hibernate jpa


    【解决方案1】:

    如果您有机会,请将您的数据库从字符集 WE8MSWIN1252 转换为 AL32UTF8(这是新安装的 Oracle 的默认设置)。然后您的所有问题都将消失,您无需使用有问题的数据类型,如 NCHAR 或 NVARCHAR 或任何特殊的连接设置。

    【讨论】:

      【解决方案2】:

      我在 SQL Server 中遇到了同样的问题,我们通过将所有 varchar 字段转换为 nvarchar 来解决它。此外,所有相应的存储过程和返回类型都需要更改。确保你所有的程序也有 nvarchar 数据类型

      【讨论】:

        猜你喜欢
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多