跟 varchar2 和 long 几乎没什么变化  错误信息是          [Microsoft][ODBC driver for Oracle][Oracle]ORA-01704:字符串文字太长 
我用  SQLPlus insert大约超过 1000个汉字 就 也会报错 什么  输入被截断为 7526 个字符 SP2-0027:输入太长(>2499个字符)-行以忽略 请教 。 急。。

解决方案 »

  1.   

    又来,是不是你的外部程序定义变量字段长度问题我在11g SQL plus 测试没问题:SQL> select * from t1;no rows selectedSQL> declare
      2    s nvarchar2(20);
      3    s1 nclob;
      4  begin
      5    s1:='';
      6    s:='汉字测试';
      7    for i in 1..2000
      8    loop
      9      s1:=s1||s;
     10    end loop;
     11    dbms_output.put_line(s1);
     12    insert into t1 values(2,s1);
     13  end;
     14  /PL/SQL procedure successfully completed.
    SQL> select dbms_lob.substr(txt,4000,4001) from t1;DBMS_LOB.SUBSTR(TXT,4000,4001)
    --------------------------------------------------------------------------------
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试DBMS_LOB.SUBSTR(TXT,4000,4001)
    --------------------------------------------------------------------------------
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试DBMS_LOB.SUBSTR(TXT,4000,4001)
    --------------------------------------------------------------------------------
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试DBMS_LOB.SUBSTR(TXT,4000,4001)
    --------------------------------------------------------------------------------
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试DBMS_LOB.SUBSTR(TXT,4000,4001)
    --------------------------------------------------------------------------------
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试汉字测试
    SQL>
      

  2.   

    clob  还是  nclob 
      

  3.   

    用clob字段。
    插入时SQL语句中用变量替换一下。
      

  4.   

    知道了。 不是字段类型的问题。是 SQL语句的问题。SQL语句最大只能是 2500个字符。  SP2-0027:输入太长(>2499个字符)-行以忽略怎么办呢 谢谢。 我是 ASP 。