Sentencia CALL

La sentencia CALL llama una rutina que se ha definido mediante la sentencia CREATE PROCEDURE o CREATE FUNCTION.

Sintaxis

Puede implementar la sentencia CALL en ESQL o externamente como procedimiento almacenado de base de datos.

La sentencia CALL pasa los parámetros al procedimiento en el orden que se le ha dado. Los parámetros definidos como IN o INOUT se evalúan antes de realizar CALL, pero los parámetros definidos como OUT se pasan siempre como parámetros NULL del tipo correcto. Cuando se haya completado el procedimiento, los parámetros declarados como OUT o INOUT se actualicen para reflejar los cambios efectuados en ellos durante la ejecución del procedimiento. Los parámetros definidos como IN no se cambian nunca durante la causa de la ejecución de un procedimiento.

Cuando el parámetro brokerSchemaName no se especifica, el analizador SQL del intermediario busca el procedimiento con nombre utilizando el algoritmo descrito en la sentencia PATH (consulte el apartado Cláusula PATH).

Cuando se especifica el parámetro brokerSchemaName, el analizador SQL de intermediario invoca el procedimiento con nombre sin buscar primero la vía de acceso.

El parámetro opcional brokerSchemaName no está soportado en WebSphere Business Integration Message Broker Versión 2.1 ni en intermediarios anteriores. Todo ESQL que se difunda en la Versión 2.1 o en un intermediario anterior, debe definirse en el mismo esquema de intermediario que el flujo de mensajes, que es el <esquema nodo>.

Inicio del cambioCada esquema de intermediario proporciona un espacio de símbolo de función y procedimiento exclusivo.Fin del cambio

Notes:
  1. Si una referencia de procedimiento es ambigua, es decir, hay dos procedimientos con el mismo nombre en esquemas de intermediario diferentes y la referencia no está calificada por el brokerSchemaName opcional, el conjunto de herramientas de Eclipse generará un error de vista de Tareas que se debe corregir para difundir el código ambiguo.
  2. La sobrecarga de procedimiento no está soportada para procedimientos externos ni procedimientos almacenados externos. (Un procedimiento sobrecargado es aquél que tiene el mismo nombre que otro procedimiento del mismo esquema de intermediario (procedimiento interno) o esquema de base de datos (procedimiento externo), 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.

Inicio del cambioSi llama un nombre de procedimiento almacenado que se ha definido con un nombre comodín de esquema de base de datos especificado como un único carácter de porcentaje en la sentencia CREATE PROCEDURE, también debe incluir la cláusula EXTERNAL SCHEMA y proporcionar databaseSchemaName en esta sentencia. En todos los demás casos, la cláusula no es obligatoria y se emite una excepción si se especifica.Fin del cambio

Las funciones incorporadas, en efecto, se colocan en un esquema de intermediario predefinido denominado SQL. Por lo tanto, las funciones de nivel de módulo definidas por el usuario del mismo nombre tienen preferencia sobre estas funciones incorporadas.

Para ver un ejemplo del uso de CALL, vea los ejemplos del apartado Sentencia CREATE PROCEDURE.

Conceptos relacionados
ESQL

Tareas relacionadas
Desarrollo de ESQL
Invocar procedimientos almacenados

Referencia relacionada
Preferencia de sintaxis
Sentencias ESQL
Sentencia CREATE PROCEDURE
Sentencia BROKER SCHEMA
Cláusula PATH