Para obtener detalles de la sintaxis y parámetros de la sentencia CALL, consulte Sentencia CALL. Para obtener un ejemplo de la utilización de CALL, consulte los ejemplos en Sentencia CREATE PROCEDURE .
Una rutina se invoca como un método ESQL si la definición de la rutina especifica una cláusula LANGUAGE de ESQL o si la rutina es una función incorporada.
Tiene que haber una coincidencia exacta de uno a uno, entre la definición y la llamada (CALL), de los tipos de datos y las direcciones de cada parámetro.
Una rutina ESQL está autorizada a devolver cualquier tipo de datos ESQL, excluyendo List y Row.
Una rutina se invoca como un método Java si la definición de la rutina especifica una cláusula LANGUAGE de JAVA.
Tiene que haber una coincidencia exacta de uno a uno, entre la definición y la llamada (CALL), de los tipos de datos y las direcciones de cada parámetro.
Si el método Java tiene un tipo de retorno de nulo, la cláusula INTO no se puede utilizar porque no hay ningún valor a devolver.
Una rutina Java puede devolver cualquier tipo de datos de la Tabla de correlación de tipos de datos ESQL a Java. Tenga en cuenta que esto excluye List y Row.
Una rutina se invoca como procedimiento almacenado de base de datos si la definición de la rutina tiene una cláusula LANGUAGE de DATABASE.
Cuando se efectúa una llamada a un procedimiento almacenado de base de datos, el intermediario busca una definición (creada por una sentencia CREATE PROCEDURE) que coincida con el nombre local del procedimiento. A continuación, el intermediario utiliza la secuencia siguiente para resolver el nombre por el que se conoce el procedimiento en la base de datos y el esquema de base de datos al que pertenece:
Si la rutina llamada tiene especificado DYNAMIC RESULT SETS en la definición, el número de expresiones de la ListaParámetros de la sentencia CALL debe coincidir con el número de parámetros reales en la rutina, más el número de DYNAMIC RESULT SETS. Por ejemplo, si la rutina tiene tres parámetros y dos DYNAMIC RESULT SETS, la sentencia CALL debe pasar cinco parámetros a la rutina llamada. Los parámetros pasados para los dos DYNAMIC RESULT SETS deben ser parámetros de lista; es decir, deben ser referencias de campo calificadas con corchetes de matriz [ ]; por ejemplo Environment.ResultSet1[].
Un procedimiento almacenado de base de datos está autorizado a devolver cualquier tipo de datos ESQL, excluyendo Interval, List y Row.