浏览 5836 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-18
我使用的数据库是Oracle10g,数据访问框架是Ibatis。 我在JSP中传入一个中文参数作为条件,从数据库中查询数据。这个时候报Oracle错误 程序 JSP中(pageEncoding、charset都是GBK): Dictionary dic1 = new DictionaryDAO().getDictionaryByCaption("惠东中学"); DAO中: Dictionary dicObj = (Dictionary)sqlMap.queryForObject("getDictionarybjByCaption", caption); //其中caption就是传进来的参数"惠东中学" Dictionary.SqlMap.xml中(encoding是UTF-8): <select id="getDictionarybjByCaption" resultMap="dictionary1Result" parameterClass="java.lang.String"> select id, parentid, caption, english from simple_dictionary where caption = #value# </select> Problem(DAO中那句程序报的错): com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/aijian/personal/Dictionary1.xml. --- The error occurred while applying a parameter map. --- Check the getDictionary1ObjByCaption-InlineParameterMap. --- Check the statement (query failed). --- Cause: java.sql.SQLException: ORA-01460: 转换请求无法实现或不合理 Solution: 我把数据库服务器端的字符集由原来AMERICAN_AMERICA.ZHS16GBK 改成AMERICAN_AMERICA.AL32UTF8。 则不会报错,我以为是Dictionary.SqlMap.xml文件的编码格式必须和数据库服务器端的一样才行。 后来我把数据库服务器端的字符集改回来AMERICAN_AMERICA.ZHS16GBK,把xml文件encoding改成GBK,仍然有错. 请问,这个问题究竟是什么原因呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-25
caption转一下码
|
|
返回顶楼 | |