Oracle 10g 数据库
版本10.2.0.1.0
JDBC驱动版本Oracle 10g 10.2.0.1.0 JDBC_classes12.jar及Oracle 10g 10.2.0.1.0 JDBC_ojdbc14.jar表结构:
CREATE TABLE TEST(
TIME TIMESTAMP(6) NOT NULL PRIMARY KEY,
MSG_INFO VARCHAR2(4),
MSG_BJ VARCHAR2(1),
MSG_SRC VARCHAR2(3),
MSG_DES VARCHAR2(3),
MSG_CONTENT VARCHAR2(4000),
TAG NUMBER(3)
);
当MSG_CONTENT字段插入长度超过2000就会报 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
百度了一下,大多数人都说是驱动与版本不匹配,说更新驱动即可,可我这个是一致的啊。
请高人指点,谢谢。

解决方案 »

  1.   

    varchar2(max)最大长度为4000
    long储存变长字符数据。
      

  2.   

    MSG_CONTENT  把LONG类型的转换为char进去插入。。
      

  3.   

    字符集中汉字都算至少2字节,所以4000个如果字符集选汉字的,只能插入2000个,要用 nvarchar 它就能真实地插入最多4000个,因为 nvarchar 把一个汉字当一个字符,而 varchar 而不同。
      

  4.   

    nvarchar最大长度是2000,无法满足我这个要求
      

  5.   

    varchar2长度长于2000就会出这种问题,用clob类型
      

  6.   

    插入的内容里面只有两个汉字为什么也报ORA-01461: ??????? LONG ?? LONG ?