0
我在oracle中有几个字段是NVARCHAR,我使用的是Java 1.5。如果我以字符串的形式读取这些值,或者是否有更好的方法来读取NVARCHAR列?JDK 1.5中的NVARCHAR
我在oracle中有几个字段是NVARCHAR,我使用的是Java 1.5。如果我以字符串的形式读取这些值,或者是否有更好的方法来读取NVARCHAR列?JDK 1.5中的NVARCHAR
假设你有一个ResultSet
命名为rs
那么这是适合NVARCHAR
:
String myColumn = rs.getString("my_column");
见Globalization Support for JDBC Drivers:
Oracle JDBC驱动程序提供全球化支持,允许您从检索数据或插入数据转换为Oracle9i数据库的SQL CHAR和NCHAR数据类型的列。由于Java字符串被编码为用于JDBC程序的UTF-16(16位Unicode),因此客户端上的目标字符集始终为UTF-16。对于存储在CHAR,VARCHAR2,LONG和CLOB数据类型中的数据,JDBC将数据库字符集中的数据透明地转换为UTF-16。 对于存储在NCHAR,NVARCHAR2和NCLOB数据类型中的Unicode数据,JDBC将国家字符集中的数据透明地转换为UTF-16。
这是否意味着我们无法读取NVARCHAR2而无需从oracle db转换为UTF-16? – 2011-04-24 09:57:24
是的,这意味着,因为Java本身总是使用UTF-16。 – 2011-04-24 11:49:24