是否有可能在ORACLE中捕获语法错误

时间:2015-06-24 11:48:06

标签: oracle plsql oracle11g oracle10g

我想问一下是否有可能在异常块上捕获语法错误?示例I在我的代码中出现异常,当它遇到异常时会通过电子邮件通知我。我知道语法错误是在编译期间,因此它不会执行异常块,但是有可能捕获它吗?

var folder = "Stuff"
yourRPC.putInFolder(folder);

2 个答案:

答案 0 :(得分:4)

如果存在语法错误,则不会编译该过程。 为了捕获异常,应该编译过程,如果有错误,那么你必须修复它们。 但是,您可以创建一个运行程序的过程(作为字符串,动态),如果您的第二个过程包含错误,甚至语法错误,您可以捕获它并将其插入表中。

点击此链接可获取更多info

答案 1 :(得分:2)

另外,您还可以编写一个程序,该程序可以检查无效对象并使用对象名称向您发送邮件。 这是sql检查无效对象。

select * from all_objects where object_type in 
('PACKAGE','PACKAGE BODY', 'PROCEDURE','FUNCTION') and status ='INVALID'

对于语法错误,您需要使用像toad,pl / sql developer,sql developer等工具来显示错误。