База данных DB2 с использованием Unicode - PullRequest
0 голосов
/ 01 декабря 2009

У меня проблема с базами данных DB2, в которой должны храниться символы Юникода. Соединение устанавливается с использованием JDBC.

Что мне делать, если я хочу вставить строку Unicode в базу данных?

INSERT INTO my_table(id, string_field) VALUES(1, N'my unicode string');

или

INSERT INTO my_table(id, string_field) VALUES(1, 'my unicode string');

Я не знаю, должен ли я использовать префикс N или нет. Для большинства баз данных он работает довольно хорошо при его использовании, но я не совсем уверен насчет DB2. У меня также проблема в том, что у меня нет базы данных DB2, где я мог бы проверить эти операторы. :-(

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 01 декабря 2009

В документации по константам (по состоянию на DB2 9.7) говорится об графических строках :

Константа графической строки задает графическую строку переменной длины, состоящую из последовательности двухбайтовых символов, которая начинается и заканчивается однобайтовым апострофом (') и которому предшествует однобайтовый G или N. Символы между апострофами должны представлять четное число байтов, а длина графической строки не должна превышать 16 336 байтов.

1 голос
/ 01 декабря 2009

Я никогда не слышал об этом в контексте DB2. Google узнает, что это больше относится к MS SQL Server. В DB2 и любой другой достойной СУБД вам нужно только убедиться, что база данных использует кодировку UTF-8. Обычно вы указываете это в операторе CREATE. Вот вариант DB2:

CREATE DATABASE my_db USING CODESET UTF-8;

Это должно быть на стороне DB2. Вам не нужно менять стандартные операторы SQL для этого. Вам также не нужно беспокоиться о Java, поскольку она уже использует Unicode.

0 голосов
/ 06 февраля 2010

Заключение строковой константы Unicode в N '' выполняется через приложение JDBC для базы данных DB2.

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