1. 首先查看oracle的字符集
select * from nls_database_parameters;
将默认的字符集设置成ZHS16GBK
2. java中保存传值给sql前将中文字符转换成unicode
public static String gbEncoding(String gbString) {
char[] utfBytes = gbString.toCharArray();
String unicodeBytes = "";
for (int i = 0; i < utfBytes.length; i++) {
String hexB = Integer.toHexString(utfBytes[i]);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + hexB;
}
return unicodeBytes;
}
3.sql中利用utl_raw.cast_to_nvarchar2函数将unicode转换成正常中文字符
update TEST set CHIN_CHAR = utl_raw.cast_to_nvarchar2(:chinChar) where ID = :id