CallableStatement setString - неподдерживаемые символы? - PullRequest
1 голос
/ 09 сентября 2009

У меня есть приложение Java, декодирующее UTF-8 в кодировке String, полученное по кабелю, и сохраняющее его в столбце varchar в моей базе данных (SQL Server 2000). Я сохраняю запись, используя JDBC CallableStatement (вызывая метод setString для установки параметра для этого столбца).

Проблема, с которой я сталкиваюсь, заключается в том, что был записан конкретный String, содержащий значение ASCII 0 (NUL). Это говорит о том, что сервер SQL не может представлять определенный символ Unicode, а драйвер JDBC решил заменить значение ASCII на 0, хотя я могу ошибаться.

  • Кто-нибудь еще сталкивался с этой проблемой?
  • Есть ли механизм, который я могу использовать, чтобы вызвать сбой вызова CallableStatement в этой ситуации?

В идеале я хотел бы гарантировать, что данные были сохранены в точности так, как указано, иначе "быстро сбой".

Мой набор символов базы данных Latin1_General_AS_CS.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 31 июля 2010

Вы должны использовать тип 'NVARCHAR' в базе данных.

0 голосов
/ 10 сентября 2009

Просто WAG, но можно ли использовать .setBytes(String parameterName, byte[] x)? Массив байтов будет взят из myString.getBytes(). Возможно, вы захотите использовать и другие наборы символов с getBytes().

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