论坛首页 入门技术论坛

希望能帮我看看是什么问题!JAVA访问数据库报错:ORA-01460: 转换请求无法实现或不合理

浏览 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,仍然有错.

请问,这个问题究竟是什么原因呢?



   发表时间:2007-07-25  
caption转一下码
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics