Oracle Pl/Sql Ora和Pls异常

Gou*_*abp 1 oracle plsql exception oracle11g

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

Ale*_*ole 9

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

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

错误消息介绍使用说道:

显示的所有消息都以文本为前缀,表示发出消息的程序.例如,前缀"ORA"表示该消息是由Oracle产品生成的.

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

SQL*Plus用户指南包含更相关的摘要:

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

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

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

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

oerr工具的用法语句将前缀称为"工具",这也没有多大帮助.

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

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