日期:2014-05-18  浏览次数:20577 次

遇到一个奇怪的问题···关于oracle数据库的
我用jdbc连接oracle数据库,使用preparedStatement时,如果sql语句中有中文
比如 String sql = "select * from users where name=?";
String name = "张三";
preparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, name);
pst.executeQuery();
会报ORA-01460: unimplemented or unreasonable conversion requested
如果用英文就没错 //name = "zhangsan";
但是用statement时,也可以有中文
String sql = "select * from users where name=+'" + name +"'";这样也没问题 可以有中文
我的jdk是1.7的 驱动包名叫class12.jar
我在别人的机器上试没问题··他的jdk是1.6的 以前都没发现这个问题 纠结啊

------解决方案--------------------
把客户端的charset改为AMERICAN_AMERICA.ZHS16CGB231280
------解决方案--------------------
数据库字符集没设对?