假设以下三股在中文中组成一个单词,我如何将所有这些一起存储在oracle中的单个字段(作为一个单词)中
String code="\u6B32 ";
String code1="\u8ECE";
String code2="\u4F7F";
谢谢
最佳答案
您可以简单地将字符串设置为 JDBC PreparedStatement 的参数。要存储 Unicode,您需要要求 DBA 确保 Oracle 实例是使用 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 关系。
进一步阅读:
关于java - 如何在oracle中通过java保存unicodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5911026/