Как сохранить Unicodes через Java в Oracle - PullRequest
1 голос
/ 06 мая 2011

Предполагая, что следующие три строки составляют слово на китайском языке, как мне хранить все это вместе в одном поле (как одно слово) в оракуле

 String code="\u6B32 ";
 String code1="\u8ECE";
 String code2="\u4F7F";

Спасибо

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Вы можете просто установить строку в качестве параметра JDBC PreparedStatement .Чтобы сохранить Unicode, вам нужно попросить своего администратора базы данных убедиться, что экземпляр Oracle создан с использованием набора символов Unicode, такого как UTF-8 (или, альтернативно, тип NVARCHAR использует набор символов Unicode).

РекомендуетсяНастройки Oracle:

  • NLS_CHARACTERSET : AL32UTF8
  • NLS_LENGTH_SEMANTICS : CHAR

Вы можете проверить NLSпараметров, выполнив следующий запрос:

select * from v$nls_parameters

Поскольку вы будете сохранять китайские символы, я предлагаю вам прочитать дополнительные символы Unicode и их реализацию в Oracle DB ,Каждый набор символов Unicode хранит дополнительные символы по-разному, и это может оказать существенное влияние на размер вашей БД на диске.Кроме того, семантика длины может быть более сложной, потому что больше нет отношения 1: 1 между числом кодовых точек и количеством символов.

Дальнейшее чтение:

0 голосов
/ 06 мая 2011

Это должно быть смежно

 String word = "\u6B32\u8ECE\u4F7F";

 PreparedStatement pstmt = pstmt = conn.prepareStatement("INSERT INTO MY_TABLE(WORDS) VALUES(?)");
 pstmt.setString(1, word);

 pstmt.execute();
 pstmt.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...