PL / SQL使用调用子程序编译匿名块

时间:2013-02-14 07:19:48

标签: plsql

很抱歉也许是一个简单的问题,但我只是PL / SQL的新手。

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

非常感谢

1 个答案:

答案 0 :(得分:1)

您必须拥有一个包含所有这些无限块,过程和函数的SQL文件。

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

要考虑的第二件事是,当你的程序或函数存在多个依赖关系时,你必须首先尝试编译独立的程序或函数。

步骤如下:

  1. 在您的情况下,独立对象似乎是您的程序。首先编译它。
  2. 现在您的函数是一个依赖于您的过程的依赖对象。因此,在编译过程之后,编译函数。
  3. 现在,您可以执行引用该功能的匿名块。
  4. 您只需要在SQL文件中安排代码,以便首先执行过程,然后是函数,最后是匿名块。然后,您只需要执行该脚本。