Instrução CALL

A instrução CALL chama uma rotina que foi definida utilizando a instrução CREATE PROCEDURE ou CREATE FUNCTION.

Sintaxe

Você pode implementar a instrução CALL em ESQL ou externamente, como um procedimento armazenado em banco de dados.

A instrução CALL transmite os parâmetros para o procedimento na ordem fornecida a ela. Os parâmetros que foram definidos como IN ou INOUT são avaliados antes de ser feita uma CALL, mas os parâmetros definidos como OUT são sempre transmitidos como parâmetros NULL do tipo correto. Quando o procedimento é concluído, quaisquer parâmetros declarados como OUT ou INOUT são atualizados para refletir eventuais alterações feitas neles durante a execução do procedimento. Os parâmetros definidos como IN nunca são alterados durante a causa da execução de um procedimento.

Quando o parâmetro opcional brokerSchemaName não é especificado, o analisador SQL do intermediário procura o procedimento nomeado utilizando o algoritmo descrito na instrução PATH (consulte o Cláusula PATH).

Quando o parâmetro brokerSchemaName é especificado, o analisador SQL do intermediário chama o procedimento nomeado sem procurar primeiro o caminho.

O parâmetro opcional brokerSchemaName não é suportado em intermediários do Versão 2.1 ou anteriores. Todo ESQL implementado em um intermediário da Versão 2.1 ou anterior deve ser definido no mesmo esquema do intermediário que o fluxo de mensagens, isto é, no <esquema do nó>.

Início da mudançaCada esquema do intermediário fornece uma função exclusiva e um espaço de símbolo de procedimento.Fim da mudança

Notes:
  1. Se a referência de um procedimento for ambígua, ou seja, se houver dois procedimentos com o mesmo nome em diferentes esquemas de intermediário, e se a referência não for qualificada pelo brokerSchemaName opcional, o conjunto de ferramentas Eclipse gera um erro na visualização Tarefas que deve ser corrigido para implementar o código ambíguo.
  2. A sobrecarga de procedimentos não é suportada nem para procedimentos internos nem para procedimentos armazenados externos. (Um procedimento sobrecarregado é um procedimento que tem o mesmo nome de outro procedimento no mesmo esquema do intermediário (procedimento interno) ou no mesmo esquema do banco de dados (procedimento externo), com quantidades diferentes de parâmetros ou parâmetros com tipos diferentes). Se o intermediário detectar que um procedimento foi sobrecarregado, ele produzirá uma exceção.

Início da mudançaSe estiver chamando o nome de um procedimento armazenado que tenha sido definido com um nome de esquema de banco de dados com caractere curinga especificado como um único caractere de porcentagem na instrução CREATE PROCEDURE, você também deve incluir a cláusula EXTERNAL SCHEMA e fornecer o databaseSchemaName nessa instrução. Em todos os outros casos, a cláusula não será necessária e uma exceção será lançada se ela for especificada.Fim da mudança

As funções internas são, na verdade, colocadas em um esquema de intermediário predefinido chamado SQL. Assim, as funções no nível do módulo definidas pelo usuário com o mesmo nome têm precedência sobre essas funções integradas.

Para obter um exemplo de utilização de CALL, consulte os exemplos em Instrução CREATE PROCEDURE.

Conceitos relacionados
ESQL

Tarefas relacionadas
Desenvolvendo ESQL
Chamando Procedimentos Armazenados

Referências relacionadas
Preferência de Sintaxe
instruções ESQL
Instrução CREATE PROCEDURE
Instrução BROKER SCHEMA
Cláusula PATH