我在程序里边的sql:
insert into dt_bbs_blackuser bl
  (bl.vc2blackid, bl.vc2userid, bl.vc2fid, bl.datblacktime, bl.datcreate)
values
  (dtseq_blackuser_id.nextval,
   ?,
   ?,
   to_date(?, 'yyyy-mm-dd hh24:mi:ss'),
   sysdate)
在插入vc2userid字段时,只要带有中文就会报java.sql.EXCEPTION:ORA-01461: can bind a LONG value only for insert into a LONG column但是该语句直接在pl-sql运行则不会出错,不知道哪位大虾能够帮小弟解决下,不胜感激

解决方案 »

  1.   

    你的vc2userid字段是什么类型,大小是多少?你插入的中文是什么?有多长?
      

  2.   

    VC2USERID VARCHAR2(32)
    我是preparedStatement
    preparedStatement.setString(1,'京AAA1234')就会出错,如果改成preparedStatement.setString(1,'111AAA1234')
    就没有问题
      

  3.   

    如果不是long插错字段的话,则要考虑Oracle与jdbc的完全兼容问题。LZ能否将Oracle升级至10g?
      

  4.   

    在插入vc2userid字段时,只要带有中文就会报java.sql.EXCEPTION:ORA-01461: can bind a LONG value only for insert into a LONG column 
    ===================================
    只要带中文就会出错,说明肯定是字符集设置不对
      

  5.   

    先把要存储的字符串转换一下,iso8859-1,再试试
      

  6.   

    ORACLE 版本是10.1.0.2.0 与 10.2.0.1.0 的ojdbc.jar 区别.   对应的jdbc在oracle安装目录可以找到oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar
      

  7.   

    我用的中clob 类型,有时可以有时与LZ报一样的错!
      

  8.   

    我的问题解决了,是驱动的问题。
    http://topic.csdn.net/u/20090927/15/c33303c1-c2ca-41d2-b41f-75291f6941c4.html
    看一下我的问题对你有没没帮助。
      

  9.   

    我也是遇到同样的问题 只是我的项目是用ssh框架开发的 HibernateDaoSupport.getHibernateTemplate().save(t);方法来保存数据 不知道是什么原因?
                      Obj obj = new Obj();
    obj.setName("黄金");
    obj.setCreationTime(new Date());
    obj.setDescription("建房招兵必备");
    obj.setStatus(1);
    obj.setUrl("sss");
    obj.setVersion(1);
    HibernateDaoSupport.getHibernateTemplate().save(obj);
    数据库表字段信息如下:数据库是oracle数据库
    id      VARCHAR2(36 CHAR)
    NAME    VARCHAR2(255 CHAR)
    VERSION NUMBER(10)
    URL     VARCHAR2(255 CHAR)
    DESCRIPTION VARCHAR2(255 CHAR)
    CREATIONTIME TIMESTAMP(6)
    STATUS   NUMBER(10)