假设以下三个字符串组成一个中文单词,我如何将所有这些字母存储在oracle中的单个字段中(作为一个单词)
String code="\u6B32 ";
String code1="\u8ECE";
String code2="\u4F7F";
谢谢
答案 0 :(得分:1)
您只需将字符串设置为JDBC PreparedStatement的参数即可。要存储Unicode,您需要请求DBA确保使用Unicode字符集(如UTF-8)创建Oracle实例(或者,NVARCHAR类型使用Unicode字符集)。
建议的Oracle设置:
您可以通过发出以下查询来检查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();