Designadores de función, método y procedimiento

En este tema se describen fragmentos de sintaxis que se utilizan para identificar de forma exclusiva una función, método o procedimiento que no se ha definido en un módulo.

Designador de función

Un designador de función identifica una única función de forma exclusiva. Por lo general, los designadores de función aparecen en sentencias de DDL de las funciones (como DROP o ALTER). Un designador de función no debe identificar una función de módulo (SQLSTATE 42883).

designador-función
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualFUNCTIONnombre-función(,tipo-datos)SPECIFIC FUNCTIONnombre-específico
FUNCTION nombre-función
Identifica una función en particular y sólo es válido si existe exactamente una instancia de función con el nombre nombre-función en el esquema. Para la función identificada puede definirse cualquier número de parámetros. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. Si no existe ninguna función con este nombre en el esquema nombrado o implícito, se produce un error (SQLSTATE 42704). Si existe más de una instancia de la función en el esquema especificado o implícito, se genera un error (SQLSTATE 42725).
FUNCTION nombre-funció (tipo-datos,...)
Proporciona la signatura de la función, que identifica la función de forma exclusiva. No se utiliza el algoritmo de resolución de función.
nombre-función
Especifica el nombre de la función. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados.
(tipo-datos,...)
Los valores deben coincidir con los tipos de datos que se han especificado (en la posición correspondiente) en la sentencia CREATE FUNCTION. Para identificar la instancia de función específica, se utilizan el número de tipos de datos y la concatenación lógica de los tipos de datos.

Si un tipo de datos no está calificado, el nombre del tipo se resuelve realizando una búsqueda en los esquemas de la vía de acceso de SQL. Esto también se aplica a los nombres de tipo de datos especificados para un tipo REFERENCE.

No es necesario especificar la longitud, la precisión o la escala para los tipos de datos con parámetros. En lugar de ello, puede codificarse un conjunto de paréntesis vacío para indicar que esos atributos deben pasarse por alto durante la búsqueda de una coincidencia de tipo de datos.

FLOAT() no puede utilizarse (SQLSTATE 42601), ya que el valor del parámetro indica tipos de datos distintos (REAL o DOUBLE).

Si se codifica la longitud, la precisión o la escala, el valor debe coincidir exactamente con el especificado en la sentencia CREATE FUNCTION. Cuando se especifica la longitud para los tipos de datos de serie gráfica o de caracteres, la unidad de serie del atributo de longitud debe coincidir de forma exacta con la especificada en la sentencia CREATE FUNCTION.

No es necesario que un tipo de FLOAT(n) coincida con el valor que se ha definido para n, pues 0 < n < 25 significa REAL y 24 < n < 54 significa DOUBLE. La coincidencia se produce basándose en si el tipo es REAL o DOUBLE.

Si en el esquema nombrado o implícito no hay ninguna función con la signatura especificada, se genera un error (SQLSTATE 42883).

SPECIFIC FUNCTION nombre-específico
Identifica una función definida por el usuario en particular, utilizándose el nombre que se ha especificado o que se ha tomado por omisión durante la creación de la función. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. El nombre-específico debe identificar una instancia de función específica en el esquema nombrado o implícito; de lo contrario, se produce un error (SQLSTATE 42704).

Designador de método

Un designador de método identifica un único método de forma exclusiva. Por lo general, los designadores de método aparecen en las sentencias de DDL de los métodos (como, por ejemplo, DROP o ALTER).

designador-método
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualMETHODnombre-método(,tipo-datos)FORnombre-tipoSPECIFIC METHODnombre-específico
METHOD nombre-método
Identifica un método en particular y sólo es válido si existe exactamente una instancia de método con el nombre nombre-método para el tipo nombre-tipo. Para el método identificado puede definirse cualquier número de parámetros. Si no existe ningún método con este nombre para el tipo, se generará un error (SQLSTATE 42704). Si existe más de una instancia del método para el tipo, se generará un error (SQLSTATE 42725).
METHOD nombre-método (tipo-datos,...)
Proporciona la signatura del método, que identifica de forma exclusiva al método. No se utiliza el algoritmo de resolución de método.
nombre-método
Especifica el nombre del método para el tipo nombre-tipo.
(tipo-datos,...)
Los valores deben coincidir con los tipos de datos que se han especificado (en la posición correspondiente) en la sentencia CREATE TYPE. Para identificar la instancia de método específica, se utilizan el número de tipos de datos y la concatenación lógica de los tipos de datos.

Si un tipo de datos no está calificado, el nombre del tipo se resuelve realizando una búsqueda en los esquemas de la vía de acceso de SQL. Esto también se aplica a los nombres de tipo de datos especificados para un tipo REFERENCE.

No es necesario especificar la longitud, la precisión o la escala para los tipos de datos con parámetros. En lugar de ello, puede codificarse un conjunto de paréntesis vacío para indicar que esos atributos deben pasarse por alto durante la búsqueda de una coincidencia de tipo de datos.

FLOAT() no puede utilizarse (SQLSTATE 42601), ya que el valor del parámetro indica tipos de datos distintos (REAL o DOUBLE).

Si se codifica la longitud, la precisión o la escala, el valor debe coincidir exactamente con el valor especificado en la sentencia CREATE TYPE. Cuando se especifica la longitud para los tipos de datos de serie gráfica o de caracteres, la unidad de serie del atributo de longitud debe coincidir de forma exacta con la especificada en la sentencia CREATE TYPE.

No es necesario que un tipo de FLOAT(n) coincida con el valor que se ha definido para n, pues 0 < n < 25 significa REAL y 24 < n < 54 significa DOUBLE. La coincidencia se produce basándose en si el tipo es REAL o DOUBLE.

Si no existe ningún método con la signatura especificada para el tipo en el esquema indicado o implícito, se generará un error (SQLSTATE 42883).

FOR nombre-tipo
Especifica el nombre del tipo al que va a asociarse el método especificado. El nombre debe identificar un tipo que ya esté descrito en el catálogo (SQLSTATE 42704). En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados.
SPECIFIC METHOD nombre-específico
Identifica un método en particular, utilizándose el nombre que se ha especificado o que se ha tomado por omisión durante la creación del método. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. El nombre-específico debe identificar una instancia de método específica en el esquema indicado o implícito; en caso contrario, se genera un error (SQLSTATE 42704).

Designador de procedimiento

Un designador de procedimiento identifica un único procedimiento de forma exclusiva. Por lo general, los designadores de procedimiento aparecen en las sentencias de DDL de los procedimientos (como DROP o ALTER). Un designador de procedimiento no debe identificar un procedimiento de módulo (SQLSTATE 42883).

designador-procedimiento
Leer el esquema de sintaxisOmitir el esquema de sintaxis visualPROCEDUREnombre-procedimiento(,tipo-datos)SPECIFIC PROCEDUREnombre-específico
PROCEDURE nombre-procedimiento
Identifica un procedimiento en particular y sólo es válido si existe exactamente una instancia de procedimiento con el nombre nombre-procedimiento en el esquema. Para el procedimiento identificado puede definirse cualquier número de parámetros. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. Si no existe ningún procedimiento con este nombre en el esquema nombrado o implícito, se genera un error (SQLSTATE 42704). Si existe más de una instancia del procedimiento en el esquema especificado o implícito, se genera un error (SQLSTATE 42725).
PROCEDURE nombre-procedimiento (tipo-datos,...)
Proporciona la signatura del procedimiento, que identifica el procedimiento de forma exclusiva. No se utiliza el algoritmo de resolución de procedimiento.
nombre-procedimiento
Especifica el nombre del procedimiento. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados.
(tipo-datos,...)
Los valores deben coincidir con los tipos de datos que se han especificado (en la posición correspondiente) en la sentencia CREATE PROCEDURE. Para identificar la instancia de procedimiento específica, se utilizan el número de tipos de datos y la concatenación lógica de los tipos de datos.

Si un tipo de datos no está calificado, el nombre del tipo se resuelve realizando una búsqueda en los esquemas de la vía de acceso de SQL. Esto también se aplica a los nombres de tipo de datos especificados para un tipo REFERENCE.

No es necesario especificar la longitud, la precisión o la escala para los tipos de datos con parámetros. En lugar de ello, puede codificarse un conjunto de paréntesis vacío para indicar que esos atributos deben pasarse por alto durante la búsqueda de una coincidencia de tipo de datos.

FLOAT() no puede utilizarse (SQLSTATE 42601), ya que el valor del parámetro indica tipos de datos distintos (REAL o DOUBLE).

Si se codifica la longitud, la precisión o la escala, el valor debe coincidir exactamente con el valor especificado en la sentencia CREATE PROCEDURE. Cuando se especifica la longitud para los tipos de datos de serie gráfica o de caracteres, la unidad de serie del atributo de longitud debe coincidir de forma exacta con la especificada en la sentencia CREATE PROCEDURE.

No es necesario que un tipo de FLOAT(n) coincida con el valor que se ha definido para n, pues 0 < n < 25 significa REAL y 24 < n < 54 significa DOUBLE. La coincidencia se produce basándose en si el tipo es REAL o DOUBLE.

Si no existe ningún procedimiento con la signatura especificada en el esquema nombrado o implícito, se genera un error (SQLSTATE 42883).

SPECIFIC PROCEDURE nombre-específico
Identifica un procedimiento en particular, utilizándose el nombre que se ha especificado o que se ha tomado por omisión durante la creación del procedimiento. En las sentencias de SQL dinámico, el registro especial CURRENT SCHEMA se utiliza como calificador para un nombre de objeto no calificado. En las sentencias de SQL estático, la opción de precompilación/enlace QUALIFIER especifica implícitamente el calificador para los nombres de objeto no calificados. El nombre-específico debe identificar una instancia del procedimiento específico en el esquema nombrado o implícito; de lo contrario, se genera un error (SQLSTATE 42704).