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).
- 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).
- 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).
- 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).
