Procedimientos ESQL

Un procedimiento es una subrutina que no tiene valor de devolución. Puede aceptar parámetros de entrada del llamador y devolverle parámetros de salida.

Puede implementar un procedimiento en ESQL (un procedimiento interno) o como un procedimiento almacenado de base de datos (un procedimiento externo). El procedimiento ESQL debe ser una sola sentencia ESQL, aunque dicha sentencia puede ser una sentencia compuesta como, por ejemplo, BEGIN END. Un procedimiento no puede devolver un valor (como sí hace una función). No puede definir un procedimiento dentro de una sentencia EVAL o una función EVAL.

Al definir un procedimiento, debe darle un nombre. El nombre se maneja de manera indiferente a las mayúsculas y minúsculas (es decir, utilizar el nombre con cualquier combinación de letras mayúsculas y minúsculas no afecta a la declaración). En esto se diferencia de los nombres que se declaran para esquemas, constantes, variables y etiquetas, que se manejan de manera sensible a las mayúsculas y minúsculas y que se deben especificar con exactitud, tal como los ha declarado.

Una expresión ESQL puede hacer referencia a un procedimiento de otro esquema de intermediario (definido en un archivo ESQL en el mismo o en otro proyecto dependiente). Si desea utilizar esta técnica, califique por completo el procedimiento o incluya una sentencia PATH que defina el calificador. La sentencia PATH debe estar codificada en el mismo archivo ESQL, pero no dentro de MODULE.

No se da soporte a los procedimientos internos sobrecargados. (Un procedimiento sobrecargado es aquél que tiene el mismo nombre que otro procedimiento del mismo esquema de intermediario, pero que tiene un número diferente de parámetros o parámetros con tipos diferentes). Si el intermediario detecta que un procedimiento se ha sobrecargado, activará una excepción.

Un procedimiento de base de datos externo se indica mediante la palabra clave EXTERNAL y el nombre de procedimiento externo. Este procedimiento debe definirse en la base de datos y en el intermediario, y el nombre especificado con la palabra clave EXTERNAL y el nombre del procedimiento de base de datos almacenado deben ser el mismo, aunque los nombres de los parámetros no tienen que coincidir. El procedimiento ESQL puede ser diferente del nombre externo que define.

No se da soporte a los procedimientos almacenados en SQLServer. Los procedimientos sobrecargados tampoco están soportados en ninguna base de datos. (Un procedimiento sobrecargado es aquél que tiene el mismo nombre que otro procedimiento del mismo esquema de base de datos, pero que tiene un número diferente de parámetros o parámetros con tipos diferentes.) Si el intermediario detecta que un procedimiento se ha sobrecargado, activará una excepción.

La resolución dinámica de nombre de esquema para procedimientos almacenados está soportada; cuando defina el procedimiento, debe especificar un comodín para el esquema que se resolverá antes de que ESQL invoque el procedimiento. Esto se explica de manera más detallada en el apartado Invocar procedimientos almacenados.

Conceptos relacionados
Flujos de mensajes
Correlaciones

Tareas relacionadas
Desarrollo de aplicaciones de flujos de mensajes
Desarrollo de ESQL
Invocar procedimientos almacenados

Referencia relacionada
Nodos incorporados
ESQL
Sentencia CREATE FUNCTION
Sentencia CREATE MODULE
Sentencia CREATE PROCEDURE