2011-05-06 50 views
1

保存統一碼假設以下幾部件三串在Oracle我如何通過Java在Oracle

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

謝謝組成一個單詞在中國我怎麼所有這些一起存儲在一個單一的領域(如一個字)你

回答

0

這應該是enaugth

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

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

pstmt.execute(); 
pstmt.close(); 
1

你可以簡單地設置字符串作爲JDBC的參數PreparedStatement。要存儲Unicode,您需要詢問DBA以確保使用Unicode字符集(如UTF-8)(或者,NVARCHAR類型使用Unicode字符集)創建Oracle實例。

建議甲骨文設置:

  • NLS_CHARACTERSET:AL32UTF8
  • NLS_LENGTH_SEMANTICS:CHAR

您可以通過發出以下查詢檢查NLS參數:

select * from v$nls_parameters 

既然你會保存中文字符,我建議你閱讀Unicode supplementary characters和他們的implementation in Oracle DB。每個Unicode字符集都存儲不同的補充字符,這可能會對磁盤上​​的數據庫大小產生重大影響。而且,長度語義可能更復雜,因爲#個代碼點和#個字符之間不再有1:1的關係。

進一步閱讀: