甲骨文写日语字符

时间:2018-09-03 09:05:14

标签: java sql oracle sql-insert cjk

我们目前正在使用Oracle 12,并且无法将日语字符插入具有NVARCHAR2(255 CHAR)类型的列的表中,结果始终是“¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ ¿¿¿¿¿¿“。我们尝试使用SQL Developper,Java程序甚至是存储的proc插入数据,但是我们总是得到相同的结果。

select * from nls_database_parameters;


NLS_RDBMS_VERSION   12.2.0.1.0
NLS_NCHAR_CONV_EXCP FALSE
NLS_LENGTH_SEMANTICS    BYTE
NLS_COMP    BINARY
NLS_DUAL_CURRENCY   $
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_TZ_FORMAT  HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_FORMAT    DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_SORT    BINARY
NLS_DATE_LANGUAGE   AMERICAN
NLS_DATE_FORMAT DD-MON-RR
NLS_CALENDAR    GREGORIAN
NLS_NUMERIC_CHARACTERS  .,
NLS_NCHAR_CHARACTERSET  AL16UTF16
NLS_CHARACTERSET    WE8DEC
NLS_ISO_CURRENCY    AMERICA
NLS_CURRENCY    $
NLS_TERRITORY   AMERICA
NLS_LANGUAGE    AMERICAN

编辑1:我不能只更改数据库参数,DBA不想。

1 个答案:

答案 0 :(得分:0)

我解决了该问题,查看了Oracle驱动程序后,发现默认情况下禁用了一个选项:https://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html

在启动应用程序时将其设置为true后,它设法将日语字符存储在数据库中:-Doracle.jdbc.defaultNChar = true