Para chamar um procedimento que está armazenado em um banco de dados, utilize a instrução ESQL CALL. O procedimento armazenado deve ser definido por um
Instrução CREATE PROCEDURE que
tenha:
- Uma cláusula Language igual a DATABASE
- Uma cláusula EXTERNAL NAME que identifique o nome do procedimento no banco de dados e, como opção, o esquema do banco de dados ao qual ele pertence.
Ao chamar um
procedimento armazenado com a instrução CALL, o intermediário assegurará que a definição ESQL e a definição do banco
de dados são correspondentes:
- O nome externo do procedimento deve corresponder a um
procedimento no banco de dados.
- O número de parâmetros deve ser o mesmo.
- O tipo de cada parâmetro deve ser o mesmo.
- A direção de cada parâmetro (IN, OUT, INOUT) deve ser a mesma.
As seguintes restrições aplicam-se ao uso de procedimentos armazenados:
- Procedimentos sobrecarregados não são suportados. (Um procedimento sobrecarregado é aquele que possui o
mesmo nome de outro procedimento no mesmo esquema de banco de dados
com um número diferente de parâmetros ou parâmetros com tipos
diferentes.)
Se outro intermediário detectar que um procedimento foi
sobrecarregado, ele lançará uma exceção.
- Em uma declaração de procedumento armazenado Oracle, não é possível restringir os parâmetros CHAR e VARCHAR2 com um comprimento e/ou os parâmetros NUMBER com uma precisão e uma escala. Utilize %TYPE quando declarar os parâmetros CHAR, VARCHAR e NUMBER para fornecer restrições em um parâmetro formal.