2011-05-06 47 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的关系。

进一步阅读: