调用存储过程

SQL CALL 语句调用存储过程。

在 CALL 语句上,指定存储过程的名称和任何参数。 自变量可以是常量,专用寄存器,主变量或表达式。 CALL 语句中指定的外部存储过程不需要具有相应的 CREATE PROCEDURE 语句。 只能通过调用在 CREATE PROCEDURE 语句上指定的过程名称来调用 SQL 过程创建的程序。

虽然过程是系统程序对象,但使用 CALL CL 命令通常无法调用过程。 CALL CL 命令不使用过程定义来映射输入和输出参数,也不使用过程的参数样式将参数传递给程序。

需要对以下类型的 CALL 语句进行寻址,因为 Db2 for i 数据库针对每种类型具有不同的规则:

  • 存在过程定义的嵌入式或动态 CALL 语句
  • 不存在过程定义的嵌入式 CALL 语句
  • 不存在 CREATE PROCEDURE 的动态 CALL 语句
注:

此处的 "动态" 是指:

  • 动态预编译并执行的 CALL 语句。
  • 在交互式环境中 (例如,通过 "运行 SQL 脚本" 或 Query Manager) 发出的 CALL 语句。
  • 在 EXECUTE IMMEDIATE 语句中执行的 CALL 语句。