1

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

4

1 回答 1

9

文档中似乎没有清楚地解释各种错误消息前缀的含义。它们在错误消息手册中进行了分组,但并没有真正说明每个组与什么相关 - 尽管您通常可以从消息本身中计算出来。

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

错误消息介绍说:

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

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

SQL*Plus 用户指南包括一个稍微相关的摘要

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

如果错误是以字母“PLS”开头的编号错误,请在 Oracle Database PL/SQL Language Reference 中查找 Oracle Database 消息。

...虽然 PLS 错误不在单独的文档中,所以看起来像一个文档错误。主要错误文档包括核心 ORA 错误和来自特定产品的许多其他前缀,包括 PLS 错误,并且还指出“消息特定于一种产品,并记录在该产品的手册中”。

如果您返回Oracle 9i 错误消息,您可以看到前缀表示的描述 - 根据该说明,PLS 是“PL/SQL 和 FIPS 消息”。它不在以后的版本中——也许产品之间的界限太模糊以至于没有意义。我怀疑这很大程度上取决于哪个小组负责将消息分配给产品的代码,并且在某种程度上可能具有历史意义,即产品被收购并适应 Oracle 产品组合(因为我相信 PL/SQL 本身就是最初的) .

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

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

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

于 2013-08-22T17:36:17.453 回答