SSH + oracle 开发页面编码utf-8
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page language="java" pageEncoding="UTF-8"%>数据库字符集默认的gbk在web.xml设置了拦截器为UTF-8从页面获取的数据在DAO层中也能正确显示,调用hibernate.save()出错:2010-12-23 11:16:03,187 WARN [org.hibernate.util.JDBCExceptionReporter] -SQL Error: 1461, SQLState: 72000 
2010-12-23 11:16:03,187 ERROR [org.hibernate.util.JDBCExceptionReporter] -ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
 
2010-12-23 11:16:03,187 WARN [org.hibernate.util.JDBCExceptionReporter] -SQL Error: 1461, SQLState: 72000 
2010-12-23 11:16:03,187 ERROR [org.hibernate.util.JDBCExceptionReporter] -ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
2010-12-23 11:16:03,187 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] -Could not synchronize database state with session 
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

解决方案 »

  1.   

    我也想过。但是发现UTF-8的汉字占3个字节,如此的话,数据库中字段的长度就都要改了。。
      

  2.   

    如果数据库改不了 utf-8的话  那就把整个工程都改成gbk
      

  3.   

    我用q.executeUpdate()来执行自己拼的SQL文是可以成功的,
    但是用getHibernateTemplate.save(),getHibernateTemplate.update()这样的就会出错。mysql的话连接数据可可以设置useUnicode=true&amp;characterEncoding=UTF-8这样的方式达到转码,
    oracle该怎么转?
      

  4.   

    2010-12-23 11:16:03,187 ERROR [org.hibernate.util.JDBCExceptionReporter] -ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值这里是由于插入的数据的类型和数据库字段类型不匹配
      

  5.   

    数据库驱动换成class12.jar,oracle11g里没有。10g里有。使用中文就不会出现乱码问题