你调试你的程序,将传入条件和sql找出
然后再sqlplus下运行,看看出错吗?
正常的情况下是应该抱错的

解决方案 »

  1.   

    to zakat(听者如歌)  兄:
        这个我早就做了哟。一样,在 pdSQL 中执行一样。都不报错,一直显示 executing.....(服务器刚启动试也是一样)我是装的 windows 版的 oracle 9i  我就一直怀疑是配置的问题。我装好后什么也没有动过呀!
      

  2.   

    做个实验:
    create table test ( id number, name varchar2(4) );然后插入name字段长度超过4的字符串,看看报不报错
    insert into test ( id, name ) values ( 1, 'fdafdasf' );
      

  3.   

    to  kulama2004(kulama) :
          这个实验做过了。可以。但:
    insert into test ( id, name ) values ( 1, 'fdafdasasdfasfasdfasdddddddddddddddfasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddafasddddddddddddddddddddddddddddddddddadddddddddddddddddddasdf' );就挂了。 而在 oralce 8i 下报错。
      

  4.   

    你居然成功了?应该是超长不成功才对,你报的错和我一样吗?不一样的话,把错误信息贴出来看看10:11:54 SQL> create table test ( id number, name varchar2(4) );Table created.Elapsed: 00:00:01.06
    10:12:01 SQL> insert into test ( id, name ) values ( 1, 'fdafdasf' );
    insert into test ( id, name ) values ( 1, 'fdafdasf' )
                                              *
    ERROR at line 1:
    ORA-01401: inserted value too large for column
    Elapsed: 00:00:00.01
      

  5.   

    我刚问的问题:
    ASP+数据库Oracle 9i下面的Content字符串的长度小的话,没问题,但是一长就出错,而且LONG类型不能换成其它的类型的,就算换成CLOB也一样不行。表:News
    字段 ID(序列号),Subject(VarChar2 Default ''),Content(Long Default '')第一种:
    StrSql="insert into News(ID,Subject,Content)Values(Seq_News.nextval,'"&Subject&"','"&Content&"')"
    objConn.execute StrSql
    执行出错:
    Microsoft OLE DB Provider for Oracle 错误 '80004005' 
    ORA-01704: 文字字符串过长 这样子不行噢, 我换:第二种:
     StrSql="select  * from ghzc_News"
     Set rsAdd = Server.CreateObject("ADODB.RecordSet")
     rsAdd.open StrSql,objConn,1,3
     rsAdd.Addnew
     这里出错啦:
     ADODB.Recordset 错误 '800a0cb3' 
     当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
     
    双不行是不是:
     我在换,写存储过程:第三种
    create or replace procedure sp_News(
     v_fun              in      number,
     v_id               in      number,
     v_subject          in      varchar2,
     v_content          in      Long
    ) is
    begin
         if v_fun=1 then 
           insert into news(id,Subject,Content) 
           values
           (seq_news.nextval,v_subject,v_content);
         end if ;  
         if v_fun=2 then
           update news set subject=v_subject,
           content=v_content where id=v_id ;
         end if;
    end sp_News;
    大家别说这个存储过程有问题,因为我测试过了,字符串小的还是没有问题的
    StrSql="Call sp_News(1,0,'"&Subject&"','"&Content&"')"
    objConn.execute StrSql
    这里执行:数据小的没有问题,数据一大双出错啦
    Microsoft OLE DB Provider for Oracle 错误 '80004005' 
    ORA-01704: 文字字符串过长以上三种方法中:
    第一种不行可以理解
    第二种不行是为什么啊, 我以前做都是这样做的啊
    第三种方法是我做JSP是做过的,用传参数调用存储过程,多大都没有问题(当然了,文本的不可能超过2G了)现在主要是问大家第二种,第三种方法不行的原因,字段的类型是不可能换的啦,就是用LONG不过现在可以了, 是用存储过程做的,第三种方法是看情况用的,我自已是不行,解决方法是只要把第三种方法改一下
    加个{}
    StrSql="{Call sp_News(1,0,'"&Subject&"','"&Content&"')"
    objConn.execute StrSql
      

  6.   

    而且用存储过程的话,你可以把VARCHAR(4000)定义成LONG
    这样还可以插入超过4000个字符的数据
    如果还是不行,加我QQ:5689168,我们继续讨论!
      

  7.   

    应该报错呀
    我用Jbuilder+weblogic+oracle9i
    不到4000就报错了.
      

  8.   

    to kulama2004 :
          没有错误信息。执行后一直在处理没有反映!to zhonggan:
          我加了你的QQ。 我的问题其实是不报错! 同样的数据库,代码在 oralce8i下都正常!
      

  9.   

    1。可能是字符串中特殊字符
    2。用prepareStatement
      

  10.   

    to zakat(听者如歌)  
        是的一样的,我直接导的。to  yyri(行云) 
        没有特殊字符。