DB2 не сохраняет стилизованный апостроф (') - PullRequest
2 голосов
/ 13 июля 2011

Я пытаюсь вставить стилизованный апостроф (’) в таблицу в DB2 LUW 9.7. Каждый метод, который я пробовал, приводил к квадрату () при выборе обратно.

Методы, которые я пытался вставить:

  • Изменение и фиксация строки в Центре управления (GUI)
  • Обновление строки с помощью команды SQL в редакторе команд
  • Загрузка из файла (как в кодировке UTF-8, так и в кодировке ANSI) через IBM Data Studio 2.2

Есть ли способ поместить этого персонажа в базу данных? Если нет, есть ли список символов, которые просто нельзя использовать?

Ответы [ 3 ]

4 голосов
/ 13 июля 2011

Какая кодировка вашей базы данных / табличного пространства?Я подозреваю, что это должно быть установлено в UTF-8.Возможно, вам потребуется создать новое табличное пространство или воссоздать базу данных с явно заданной кодировкой UTF-8.

Чтобы определить кодировку , выполнить следующую команду и найти «Набор кодов»."информация:

db2 get db cfg for <database name>
1 голос
/ 13 июля 2011

из Вставка апострофа в таблицу DB2

 insert into userid.empy values(1234,'RAM'''); 

Вы поместили 2 одинарных кавычки, чтобы в таблице появилась одинарная кавычка.

см. Также: http://www.ibmmainframes.com/viewtopic.php?t=36901&highlight=apostrophe и http://www.ibmmainframes.com/viewtopic.php?t=29213&highlight=apostrophe

0 голосов
/ 14 июля 2011

Если вы используете API, хорошим способом является подготовка оператора и привязка текста, содержащего цитаты, к параметру.

Напомним, что разрешение кому-либо вводить кавычки и вставлять их без изменений (например, sprintf (sqlstr, "INSERT INTO mytable VALUES ('% s')", inputtr);) может привести к SQL-инъекции.

мой ввод:

test '); удалить базу данных; вставить в mytable значения (' test

может привести к пустой базе данных

...