0

抱歉,这个问题可能很简单,但我只是 PL/SQL 的新手。

我有一个文件,其中第一行是匿名块,下一个过程和文件末尾的一个函数。从函数调用过程,从匿名块调用函数。如何确保首先编译过程和函数,然后编译并执行匿名块?

非常感谢

4

1 回答 1

1

您必须拥有一个包含所有这些任意块、过程和函数的 SQL 文件。

您必须首先考虑到 PL/SQL 匿名块永远不会被编译和保存,而是被编译和执行。您没有为这些块指定对象名称,这就是它们被称为匿名的原因。您不能在数据定义模式视图中对您运行的匿名块有任何引用。您可以在数据定义模式视图中获取存储过程和函数的信息,例如user_proceduresuser_objects等。

第二件要考虑的事情是,当您的大量过程或函数存在依赖关系时,您必须首先尝试编译独立的过程或函数。

步骤如下:

  1. 在您的情况下,独立对象似乎是您的程序。先编译它。
  2. 现在您的函数是依赖于您的过程的依赖对象。因此,在编译您的过程后,编译该函数。
  3. 现在,您可以执行引用该函数的匿名块。

您只需在 SQL 文件中安排代码,使过程在前,函数在后,匿名块在最后。然后,您只需要执行该脚本。

于 2013-02-14T08:48:58.550 回答