Procedimentos ESQL

Um procedimento é uma sub-rotina sem valor de retorno. Ele pode aceitar parâmetros de entrada do responsável pela chamada e retornar parâmetros de saída para ele.

Os procedimentos são muito semelhantes às funções. A principal diferença entre eles é que, ao contrário das funções, os procedimentos não possuem valor de retorno. Portanto, eles não podem fazer parte de uma expressão e são chamados utilizando a instrução CALL. Os procedimentos normalmente possuem parâmetros de saída.

É possível implementar um procedimento em ESQL (um procedimento interno) ou como um procedimento armazenado em banco de dados (um procedimento externo). O procedimento ESQL deve ser uma única instrução ESQL, embora ela possa ser uma instrução composta, como BEGIN END. Não é possível definir um procedimento dentro de uma instrução EVAL ou de uma função EVAL.

Ao definir um procedimento, forneça um nome a ele. O nome é tratado sem fazer distinção entre maiúsculas e minúsculas (ou seja, pode-se utilizar o nome com qualquer combinação de maiúsculas e minúsculas na instrução). Isso é o oposto do que ocorre com os nomes declarados para esquemas, constantes, variáveis e rótulos, que fazem distinção entre maiúsculas e minúsculas e que devem ser especificados exatamente da maneira como foram declarados.

Uma expressão ESQL pode incluir uma referência a um procedimento em outro esquema do intermediário (definido em um arquivo ESQL em um projeto dependente igual ou diferente). Se desejar utilizar esta técnica, é necessário qualificar totalmente o procedimento ou incluir uma instrução PATH que defina o qualificador. A instrução PATH deve ser codificada no mesmo arquivo ESQL, mas não em um MODULE.

Um procedimento de banco de dados externo é indicado pela palavra-chave EXTERNAL e pelo nome do procedimento externo. Esse procedimento deve ser definido no banco de dados e no intermediário e o nome especificado com a palavra-chave EXTERNAL e o nome do procedimento do banco de dados armazenado devem ser os mesmos, embora os nomes dos parâmetros não precisem corresponder. O nome do procedimento ESQL pode ser diferente do nome externo definido por ele.

Os procedimentos sobrecarregados não são suportados em qualquer banco de dados. (Um procedimento sobrecarregado é um procedimento que tem o mesmo nome de outro procedimento no mesmo esquema de banco de dados, com quantidade diferente de parâmetros ou parâmetros com tipos diferentes). Se o intermediário detectar que um procedimento foi sobrecarregado, ele produz uma exceção.

A resolução dinâmica de nomes de esquema para procedimentos armazenados é suportada; ao definir o procedimento, você deve especificar um caractere curinga para o esquema que é resolvido antes da chamada do procedimento pelo ESQL. Isso é explicado em maior detalhe em Chamando Procedimentos Armazenados.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral de Mapeamentos de Mensagens
Tarefas relacionadas
Desenvolvendo Fluxos de Mensagens
Desenvolvendo ESQL
Chamando Procedimentos Armazenados
Referências relacionadas
Nós Internos
Referência de ESQL
Instrução CREATE FUNCTION
Instrução CREATE MODULE
Instrução CREATE PROCEDURE
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak01090_