ORA-01461: can bind a LONG value only for insert into a LONG column,不是中文长度问题,是ojdbc驱动

【DB server端】Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

解答:查看server极端在版本和字符集,请看这里。


【我的应用linux服务器,oci连接】从前端界面录入中文,插到库里就变了乱码。

解答:查看server端字符集,发现支持中文,而且用pl/sql执行sql,确实是能将中文正确插入的,那就一定是client端有问题喽。

发现,是前端进来的时候,就已经成了乱码。

$.post()如果包含中文参数,那么进行这样的编码,var hello1 = encodeURIComponent($("input[name='fromApps']").val());

后台进行,fromApps = URLDecoder.decode(fromApps, "UTF-8");这样就好了。

 

【我的本机pc,thin连接】压根儿插不进去中文,报ORA-01461: can bind a LONG value only for insert into a LONG column

解答:网上传说可能是由于字段爆了,但我的情况不属于,因为哪怕我只输入一个中文也有这个问题(字段varchar2(32)是够的),那么又会是什么问题呢?

网民们太强大了,怀疑这是驱动问题,果然的,我用的是ojdbc14.jar(在eclipse .classpath文件中搜ojdbc)!

然后个然后,换成ojdbc6.jar(在test bundle, pom.xml引入),重启就好啦!详情可看这里。

 

你可能感兴趣的:(ORA-01461: can bind a LONG value only for insert into a LONG column,不是中文长度问题,是ojdbc驱动)