要调用存储在数据库中的过程,请使用 ESQL CALL 语句。存储过程必须由具有以下子句的
CREATE PROCEDURE 语句定义:
- DATABASE 语言子句
- EXTERNAL NAME 子句,标识该过程在数据库中的名称以及它所属的数据库模式(可选)。
当您使用 CALL 语句调用存储过程时,代理确保 ESQL 定义和数据库定义满足以下条件:
- 过程的外部名必须与数据库中的过程相匹配。
- 参数的数目必须相同。
- 每个参数的类型必须相同。
- 每个参数的方向(IN、OUT、INOUT)必须相同。
以下限制适用于存储过程的使用:
- 不支持超负荷过程。(超负荷过程是指在同一数据库模式中,与另一个过程具有相同名称,但具有不同参数数量或不同参数类型的过程。)如果代理检测到过程已超负荷,则会报告异常。
- 在 Oracle 存储过程声明中,不允许约束 CHAR 和 VARCHAR2 参数的长度和 NUMBER 参数的精度和/或小数位。声明 CHAR、VARCHAR 和 NUMBER 参数以提供对形参的约束时,请使用 %TYPE。