Oracle Pl / Sql Ora和Pls异常

时间:2013-08-22 16:50:30

标签: oracle exception plsql oracle11g

Oracle-XXXXX和oracle pl / sql中的PLS-XXXXX异常之间的根本区别是什么。根据我的理解,ORA与数据库错误有关,PLS用于编程错误,有些人可以对这个主题有所了解。提前谢谢!

1 个答案:

答案 0 :(得分:9)

文档中似乎没有清楚地解释各种错误消息前缀的含义。它们被分组在错误消息手册中,但它并没有真正说明每个组的相关内容 - 尽管您通常可以从消息本身中解决它。

但你是对的;至少PLS错误与PL / SQL有关。 ORA错误涵盖了广泛的范围,其中许多错误可能是由于“编程”错误,取决于您如何定义错误。

error messages introducton说:

  

显示的所有消息都以文本为前缀,指示哪些消息   程序发出了消息。例如,前缀“ORA”表示   消息由Oracle产品生成。

由于这是Oracle文档,因此说Oracle产品生成的错误不会增加太多,非ORA代码也来自Oracle产品。

SQL * Plus用户指南includes a slightly more relevant summary

  

如果错误是以字母“ORA”开头的编号错误,   在Oracle数据库错误中查找Oracle数据库消息   消息指南或特定于平台的Oracle文档   为您的操作系统提供。

     

如果错误是以字母“PLS”开头的编号错误,   在Oracle Database PL / SQL中查找Oracle数据库消息   语言参考。

...虽然PLS错误不在单独的文档中,因此看起来像doc bug。主error documentation包括核心ORA错误和特定产品的许多其他前缀,包括PLS错误,还注意到“消息特定于一个产品,并记录在该产品的手册中”。

如果你回到Oracle 9i error messages,你可以看到前缀意味着的描述 - PLS就是'PL / SQL和FIPS消息'。它不是在以后的版本中 - 也许产品之间的界限太模糊了,因为它没有意义。我怀疑这主要取决于哪个组负责将消息分配给产品的代码,并且在某种程度上可能具有历史意义,其中产品被获取并适应Oracle产品组合(因为我认为PL / SQL本身是最初的)

oerr工具的用法语句将前缀称为“设施”,这也没有多大帮助。

如果您看到PLS错误,那么它甚至不必来自您编写的PL / SQL代码,也不必来自PL / SQL块。您可以从SQL调用可以获取PLS错误的函数,因为它们(通常)在PL / SQL中实现。编译PL / SQL时可能会出现ORA错误。

所以我不确定这种区别是否完全清楚,但它也不是很有用。无论您的错误有哪些前缀,都可以在错误消息手册中查找,看看它的含义以及如何解决它