动态例程名称规范的规则

您必须定义保存动态地执行的 SPL 例程的名称的 SPL 变量为 CHAR、VARCHAR、NCHAR 或 NVARCHAR 类型。您还必须为 SPL 变量提供一个有效的且非 NULL 的名称。

在可执行动态的例程名称规范标识的 SPL 例程之前,该例程必须存在。如果你将有效的 SPL 例程的名称分配给该 SPL 变量,则 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句执行在该变量中包含其名称的例程,即使存在同名的内建的函数。

在 EXECUTE PROCEDURE 或 EXECUTE FUNCTION 语句中,您不可使用两个 SPL 变量来创建形式为 owner.routine_name 的变量名称。然而,您可使用包含完全限定的例程名称的 SPL 变量,例如,bill.proc1。下图同时展示这两种情况。

图: 包含完全限定的例程名称的 SPL 变量。

EXECUTE PROCEDURE owner_variable.proc_variable;
          -- 不允许这样 
          
          LET proc1 = bill.proc1;
          EXECUTE PROCEDURE proc1; -- 允许这样