数据库中没有存储过程,给一个文件,文件的内容是创建存储过程的sql脚本,我的程序把它读到一个String中,然后execute这个String,再看数据库,有这个存储过程了,但是有个问题,新建的存储过程可能会编译通过正常,也可能编译不通过,但还是有这个存储过程了,我的问题就是我如何知道这个存储过程通过了编译或者没通过,没通过的话因为什么?在数据库中打开未通过编译的存储过程,会有提示错在哪里,比如某个表不存在这类的,程序如何知道这个信息,我想过发布存储过程后,再用程序调用这个存储过程,但这样可能能知道是否编译通过,可要是没通过如何得到错误信息呢?

解决方案 »

  1.   

    通过全局变量ERROR访问
    如果出错的话,直接把刚生成的PROC DROP掉就是了
      

  2.   

    如何获得全局变量error,编译不通过,发布是不抛异常的
      

  3.   

    捕捉异常就可以了呀。在执行创建语句的时候,oracle实际上已经在编译了,如果出错,肯定会有异常的。
      

  4.   

    楼上两位试试执行这个存储过程
    create or replace a
    end a
    /用字符串读,然后execute,看看是否会抛异常?