根据程序前台输入的语句,执行得到新的存储过程,返回errmsg信息
比如输入ccgcyj001,执行后得到新的存储过程语句001,比如执行失败,返回的errmsg“  FAILED:ORA-24344: 成功, 但出现编译错误”这样前台操作的时候,根据返回的errmsg不能清楚的知道输入语句哪里的问题,还是要用数据库查询新生成的存储过程语句001,里面的提示信息“ 错误:PLS-00103: 出现符号 ""在需要下列之一时:
        begin case declare end
          exception exit for goto if loop mod null pragma raise return
          select update while with <an identifier>
          <a double-quoted delimited-identifier> <a bind variable> <<
          close current delete fetch lock insert open rollback
          savepoint set sql execute commit forall merge pipe
       符号 "" 被忽略。
行:27  ”

求教:怎么前台执行语句失败的时候,怎么得到较为完整的提示信息
图片1为存储过程语句
图片2为新生成的存储过程语句

解决方案 »

  1.   

    你这里写的是 s.sfsssq_xxxx ,但是你并没有为你的表(视图)取一个 s 别名。
      

  2.   

    关于怎么返回程序存储过长语句里面的提示内容这个问题,方法有很多种。
    常见的有:
    1.将错误信息插入的一张日志表,存储过程执行完后查看日志表数据便知。
    2.将存储过程写成PL/SQL块形式,在SQL Window的Output面板即可看到提示信息
    3.在Command Window窗口先设置打印输出。即:在先运行 set serveroutput on后再执行存储过程。
    需要注意的是:你存储过程中的打印语句应该写成:
    dbms_output.put_line('FAILED: '||sqlerrm);
      

  3.   

    execute immediate  能执行创建过程的语句?