目录

sql需要转码

5.3.3. sql需要转码

有些数据库的字符集不是gbk,因此相应的jdbc包可能会对sql进行处理,例如sqlsvr,如果你传递一个正确的含中文的sql给它,那么其jdbc包会把sql语句转成数据库能识别的字符,如iso-8859-1,然后再交给数据库去执行,获得查询结果后,jdbc又会把查询结果转成GBK返回给客户端。

因此,存在一个问题:有些JDBC包对SQL语句进行了转码,例如SQL SERVER,但是有些JDBC包没有对SQL语句进行处理,例如DB2,此时就需要用户自己把SQL语句转为数据库可识别的字符集。这就是SQL是否需要转码配置的由来。

验证SQL是否需要转码,最简单的办法是写一个带中文的SQL语句,用JDBC的连接方式提交给数据库执行,看能否返回正确的执行结果,如果不行,说明需要转码。

配置方法:

将reportConfig.xml中dataSource对应的值中第4个选项0改为1即可,如下所示:

<config><name>dataSource</name><value>jdbc/test,oracle,GBK,1</value> </config>