Para invocar un procedimiento
almacenado en una base de datos, utilice la sentencia ESQL CALL. El procedimiento almacenado
se debe definir mediante una
Sentencia CREATE PROCEDURE
que tenga:
- Una cláusula Language de DATABASE
- Una cláusula EXTERNAL NAME que identifique el nombre del procedimiento en la base de datos
y, opcionalmente, el esquema de base de datos al que pertenece.
Cuando se invoca un procedimiento almacenado
con una sentencia CALL, el intermediario se asegura de que coincidan la definición ESQL
y la definición de base de datos:
- El nombre externo del procedimiento debe coincidir con un procedimiento de la base de datos.
- El número de parámetros debe ser el mismo.
- El tipo de cada parámetro debe ser el mismo.
- La dirección de cada parámetro (IN, OUT, INOUT) debe ser la misma.
Las
siguientes restricciones se aplican al uso de procedimientos almacenados:
- No se da soporte a los procedimientos sobrecargados. (Un procedimiento
sobrecargado es aquél que tiene el mismo nombre que otro procedimiento del
mismo esquema de base de datos con un número diferente de parámetros o
parámetros con tipos diferentes.) Si el intermediario detecta que se ha
sobrecargado un procedimiento, se genera una excepción.
- En una declaración de procedimiento almacenado de Oracle, no
se le permite limitar los parámetros CHAR y VARCHAR2 con una longitud, ni los
parámetros NUMBER con una precisión, una escala, o ambas cosas. Utilice
%TYPE cuando declare parámetros CHAR, VARCHAR y NUMBER para imponer
limitaciones en un parámetro formal.