使用sqlplusset serveroutput on
exec 你的过程
这样一来,有exception就可以通过dbms_output.putline输出了

解决方案 »

  1.   

    to  esunny(e辉):我说的是自己开发的客户端应用程序,不是oracle自带的那些客户端工具to xiaosi23(娃娃叫) Catch exception 然后跟踪,就可以在调试窗口看到里面的东西了(21000)
      

  2.   

    Catch exception ? 是sqlplus语言,还是vc编程语言,还是ado类或者方法?谢谢了
      

  3.   

    我是用的ADO不是ADO.net估计差不多
    编程用的BCB
    代码如下
    try{
    int cnt;
    AnsiString ClientIP=InputBox("输入提示", "请输入……:", "");
    ADOConnection1->Execute(insert into CustomerLinkRecord (SourceIP) values('"+ClientIP+"')",cnt);
    if(cnt<1)
    {
      String info="";
      for(int i=0;i<ADOConn->Errors->Count-1;i++)
      {
        info+=IntToStr(ADOConn->Errors->Item[i]->Number) + ":" + ADOConn->Errors->Item[i]->Description + "\n";
      }
      MessageBox(Application->Handle,info.c_str(),"error",MB_OK|MB_ICONERROR);
    }
    }
      catch (Exception &exception)
      {
         Application->ShowException(&exception);
      }
      

  4.   

    info+=IntToStr(ADOConn->Errors->Item[i]->Number) + ":" + ADOConn->Errors->Item[i]->Description + "\n";
    这一行捕捉了错误号和错误描述
      

  5.   

    其它语言都差不多的但是我的另外一个问题为什么还是没有人回答?   还有一个问题,如果存储过程中使用了dbms_output.putline()    如何在客户端应用里面捕捉到输出的这些文本?
      

  6.   

    不行,这只对sql*plus有效,楼主可以用out参数返回值