Designadores de función en Db2 for z/OS

Este tema describe la sintaxis SQL para fragmentos que identifican funciones incorporadas o definidas por el usuario en sentencias como ALTER FUNCTION, GRANT y REVOKE. El designador de función identifica la función SQL por su nombre, una firma de función que identifica la función de forma única o su nombre específico.

Sintaxis para designador de función (ALTER FUNCTION )

designador de función:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualFUNCTIONnombre-función(,parámetro-tipo)SPECIFIC FUNCTIONnombre-específico
tipo de parámetro:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualtipo de datosAS LOCATOR1
tipo de datos:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualtipo-incorporado2nombre-tipo-diferenciadoarray-type-name3
Notas:
  • 1 AS LOCATOR sólo puede especificarse para un tipo de datos LOB o un tipo distinto basado en un tipo de datos LOB.
  • 2 Para el diagrama sintáctico de este fragmento, véase Sintaxis para built-in-type.
  • 3 array-type-name sólo se admite para funciones escalares SQL compiladas.

Sintaxis del indicador de función (GRANT o REVOKE)

designador de función:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualFUNCTION,nombre-función(,parámetro-tipo)*SPECIFIC FUNCTION,nombre-específico
tipo de parámetro:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualtipo de datosAS LOCATOR1
tipo de datos:
Leer el diagrama sintácticoSaltar diagrama de sintaxis visualtipo-incorporado2nombre-tipo-diferenciadoarray-type-name3
Notas:
  • 1 AS LOCATOR sólo puede especificarse para un tipo de datos LOB o un tipo distinto basado en un tipo de datos LOB.
  • 2 Para el diagrama sintáctico de este fragmento, véase Sintaxis para built-in-type.
  • 3 array-type-name sólo se admite para funciones escalares SQL compiladas.

Sintaxis para built-in-type

Para obtener descripciones de los tipos de datos incorporados en el siguiente diagrama, consulte Tipos de datos en Db2 for z/OS.

Leer el diagrama sintácticoSaltar diagrama de sintaxis visualSMALLINTINTEGERINTBIGINTDECIMALDECNUMERIC(5,0)( entero, entero)FLOAT(53)( entero)REALDOUBLEPRECISIONDECFLOAT(34)(16)CHARACTERCHAR(1)( entero)CHARACTERCHARVARYINGVARCHAR( entero)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDBITDATACHARACTERCHARLARGE OBJECTCLOB(1M)( enteroKMG)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDDATAGRAPHIC(1)( entero)VARGRAPHIC(longitud)DBCLOB(1M)( enteroKMG)CCSIDASCIIEBCDICUNICODEBINARY(1)( entero)BINARY VARYINGVARBINARY( entero)BINARY LARGE OBJECTBLOB(1M)( enteroKMG)DATETIMETIMESTAMP(6)(entero)WITHOUT TIME ZONEWITH TIME ZONEROWIDXML1
Notas:
  • 1 El tipo de datos XML no es compatible con las funciones externas.
FUNCIÓN nombre-función

Identifica la función por su nombre. La función puede tener cualquier número de parámetros definidos para ella.

La dirección function-name debe identificar exactamente una función en el esquema especificado o implícito. Si hay más de una función en el esquema, o el esquema no contiene una función con nombre-función, se devuelve un error.

Para una función escalar inlined o una función escalar SQL compilada, sólo los 30 primeros parámetros determinan la unicidad de la función.

FUNCTION nombre-función (tipo-parámetro,...)
Identifica la función SQL por su firma de función, que identifica la función de forma única.
nombre-función
Proporciona el nombre de la función escalar SQL alineada.

Si se especifica function-name (), la función identificada debe tener cero parámetros.

(tipo de parámetro,...)
Especifica el número de parámetros de entrada de la función y el nombre y tipo de datos de cada parámetro.
(tipo de datos,...)

Identifica el número de parámetros de entrada de la función y el tipo de datos de cada parámetro. El tipo de datos de cada parámetro debe coincidir con el tipo de datos especificado en la sentencia CREATE FUNCTION para el parámetro en la posición correspondiente.

Para los tipos de datos que tienen un atributo de longitud, precisión o escala, puede utilizar un conjunto de paréntesis vacíos, especificar un valor o aceptar los valores predeterminados:

  • Los paréntesis vacíos indican que Db2 debe ignorar el atributo a la hora de determinar si los tipos de datos coinciden.

    Por ejemplo, DEC() se considerará una coincidencia para un parámetro de una función definida con un tipo de datos DEC(7,2). Del mismo modo, DECFLOAT() se considerará compatible con DECFLOAT(16) o DECFLOAT(34).

    FLOAT no puede especificarse con paréntesis vacíos porque el valor de su parámetro indica tipos de datos diferentes (REAL o DOUBLE).

  • Si utiliza un valor específico para un atributo de longitud, precisión o escala, el valor debe coincidir exactamente con el valor especificado (implícita o explícitamente) en la sentencia CREATE FUNCTION.

    El valor específico para FLOAT (n ) no tiene que coincidir exactamente con el valor definido de la función fuente porque 1<=n<=21 indica REAL y 22<=n<=53 indica DOUBLE. La coincidencia se basa en si el tipo de datos es REAL o DOUBLE.

  • Si no se especifica explícitamente la longitud, la precisión o la escala y no se especifican paréntesis vacíos, la longitud por defecto del tipo de datos es implícita. La longitud implícita debe coincidir exactamente con el valor especificado (implícita o explícitamente) en la sentencia CREATE FUNCTION.

Para los tipos de datos con un atributo de subtipo o esquema de codificación, especificar la cláusula FOR subtype DATA o la cláusula CCSID es opcional. La omisión de cualquiera de estas cláusulas indica que Db2 debe ignorar el atributo a la hora de determinar si los tipos de datos coinciden. Si especifica cualquiera de las dos cláusulas, debe coincidir con el valor que se especificó implícita o explícitamente en la sentencia CREATE FUNCTION.

tipo-incorporado
Para obtener descripciones de los tipos de datos incorporados, consulte Tipos de datos y la descripción de built-in-type en la sentencia CREATE TABLE.
nombre-tipo-diferenciado
El nombre de un tipo distinto. Para más información, véase Tipos distintos.

Para obtener más información sobre la especificación de la lista de parámetros, consulte la sentencia CREATE FUNCTION (descripción general).

Una función con la firma de función debe existir en el esquema especificado explícita o implícitamente.

FUNCIÓN ESPECÍFICA nombre-específico
Identifica la función por su nombre específico. El nombre está implícita o explícitamente cualificado con un nombre de esquema. El nombre específico debe identificar una función específica que exista en el servidor actual.