2009-12-01 45 views
0

我應該存儲unicode字符的DB2數據庫有問題。連接使用JDBC建立。使用unicode的DB2數據庫

如果我想將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數據庫。 :-(

非常感謝!

+1

僅供參考:Express-C版可能對您有用,用於測試。 – McDowell 2009-12-01 12:19:27

+0

感謝您的信息! – zlajo 2009-12-01 13:51:04

回答

1

constants(如DB2 9.7的)文檔說這大約graphic strings

圖形字符串常量指定由雙字節字符的序列組成,並具有端部變長圖形字符串一個單字節撇號('),前面是一個單字節的G或N.撇號之間的字符必須表示偶數個字節,並且圖形字符串的長度不得超過16個字節。

+0

有趣的,不知道,但這樣的氣味就像一個「解決方法」,用於將unicode數據插入未配置爲使用unicode的數據庫/表中。我寧願將數據庫配置爲使用unicode而不是搞亂SQL語句。 – BalusC 2009-12-01 13:11:03

+0

說實話,我不知道如何通過JDBC驅動程序和Java字符串表達式來隱式地使用UTF-16。這種支持看起來更像是使用八位字節的代碼。這不會是我的第一選擇,但我也不會得出結論 - 可能會有一些傳統模式,海報需要與之合作。 – McDowell 2009-12-01 13:44:27

+0

我有一個關於這個陳述的問題:當使用這個符號時,我只能使用UCS-2,對嗎?那麼UTF-8編碼的字符串呢? – zlajo 2009-12-01 13:53:33

1

我從來沒有聽說過這在DB2的背景。Google得知我,這是更MS SQL Server特定在DB2和所有其他像樣的RDBMS你只需要確保。正在使用UTF-8字符集數據庫時,通常指定的CREATE聲明這裏的DB2變體。

CREATE DATABASE my_db USING CODESET UTF-8; 

這應該是它在DB2方面你並不需要改變標準的SQL語句你也不需要擔心Java,因爲它在內部已經使用Unicode 。

0

通過DB2 DB的JDBC應用程序,在N'內包含unicode字符串常量。