Oracle-XXXXX和oracle pl / sql中的PLS-XXXXX异常之间的根本区别是什么。根据我的理解,ORA与数据库错误有关,PLS用于编程错误,有些人可以对这个主题有所了解。提前谢谢!
答案 0 :(得分:9)
文档中似乎没有清楚地解释各种错误消息前缀的含义。它们被分组在错误消息手册中,但它并没有真正说明每个组的相关内容 - 尽管您通常可以从消息本身中解决它。
但你是对的;至少PLS错误与PL / SQL有关。 ORA错误涵盖了广泛的范围,其中许多错误可能是由于“编程”错误,取决于您如何定义错误。
显示的所有消息都以文本为前缀,指示哪些消息 程序发出了消息。例如,前缀“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错误。
所以我不确定这种区别是否完全清楚,但它也不是很有用。无论您的错误有哪些前缀,都可以在错误消息手册中查找,看看它的含义以及如何解决它