如何在oracle中通过java保存unicodes

时间:2011-05-06 11:54:32

标签: java oracle unicode

假设以下三个字符串组成一个中文单词,我如何将所有这些字母存储在oracle中的单个字段中(作为一个单词)

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

谢谢

2 个答案:

答案 0 :(得分:1)

您只需将字符串设置为JDBC PreparedStatement的参数即可。要存储Unicode,您需要请求DBA确保使用Unicode字符集(如UTF-8)创建Oracle实例(或者,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的关系。

进一步阅读:

答案 1 :(得分: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();