中的功能代号 Db2 for z/OS

本主题介绍在 ALTER FUNCTION、GRANT 和 REVOKE 等语句中标识内置或用户定义函数的片段的 SQL 语法。 函数设计器通过名称、唯一标识函数的函数签名或具体名称来标识 SQL 函数。

函数代号 (ALTER FUNCTION )的语法

功能代号:
阅读语法图跳过可视化语法图FUNCTION函数名(,参数类型)SPECIFIC FUNCTION特定名称
参数类型:
阅读语法图跳过可视化语法图数据类型AS LOCATOR1
数据类型:
阅读语法图跳过可视化语法图built-in-type2distinct-type-name数组类型名称3
注意:
  • 1 AS LOCATOR 只能为 LOB 数据类型或基于 LOB 数据类型的独特类型指定。
  • 2 有关该片段的语法图,请参阅内置类型的语法。
  • 3 array-type-name 仅支持编译后的 SQL 标量函数。

功能指定器 (GRANT 或 REVOKE)的语法

功能代号:
阅读语法图跳过可视化语法图FUNCTION,函数名(,参数类型)*SPECIFIC FUNCTION,特定名称
参数类型:
阅读语法图跳过可视化语法图数据类型AS LOCATOR1
数据类型:
阅读语法图跳过可视化语法图built-in-type2distinct-type-name数组类型名称3
注意:
  • 1 AS LOCATOR 只能为 LOB 数据类型或基于 LOB 数据类型的独特类型指定。
  • 2 有关该片段的语法图,请参阅内置类型的语法。
  • 3 array-type-name 仅支持编译后的 SQL 标量函数。

内置类型的语法

有关下图中内置数据类型的描述,请参阅 Db2 for z/OS 中的数据类型

阅读语法图跳过可视化语法图SMALLINTINTEGERINTBIGINTDECIMALDECNUMERIC(5,0)( 整数整数)FLOAT(53)( 整数)REALDOUBLEPRECISIONDECFLOAT(34)(16)CHARACTERCHAR(1)( 整数)CHARACTERCHARVARYINGVARCHAR( 整数)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDBITDATACHARACTERCHARLARGE OBJECTCLOB(1M)( 整数KMG)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDDATAGRAPHIC(1)( 整数)VARGRAPHIC(长度)DBCLOB(1M)( 整数KMG)CCSIDASCIIEBCDICUNICODEBINARY(1)( 整数)BINARY VARYINGVARBINARY( 整数)BINARY LARGE OBJECTBLOB(1M)( 整数KMG)DATETIMETIMESTAMP(6)(整数)WITHOUT TIME ZONEWITH TIME ZONEROWIDXML1
注意:
  • 1 外部功能不支持 XML 数据类型。
FUNCTION 功能名称

用名称标识函数。 函数可以定义任意数量的参数。

function-name 必须在指定或隐含模式中准确标识一个功能。 如果模式中有多个函数,或模式中不包含具有函数名的函数,则返回错误信息。

对于内联标量函数或编译后的 SQL 标量函数,只有前 30 个参数决定了函数的唯一性。

FUNCTION 函数名(参数类型,......)
通过函数签名标识 SQL 函数,函数签名是函数的唯一标识。
函数名
给出内联 SQL 标量函数的函数名。

如果指定了 function-name (),则标识的函数必须为零参数。

(参数类型......)
指定函数的输入参数个数以及每个参数的名称和数据类型。
(数据类型 ,......)

标识函数的输入参数个数和每个参数的数据类型。 每个参数的数据类型必须与 CREATE FUNCTION 语句中为相应位置的参数指定的数据类型一致。

对于具有长度、精度或比例属性的数据类型,可以使用一组空括号、指定一个值或接受默认值:

  • 空括号表示 Db2 在判断数据类型是否匹配时忽略该属性。

    例如,DEC() 将被视为与数据类型为 DEC(7,2) 的函数参数相匹配。 同样,DECFLOAT() 将被视为与 DECFLOAT(16) 或 DECFLOAT(34) 匹配。

    FLOAT 不能用空括号指定,因为其参数值表示不同的数据类型(REAL 或 DOUBLE)。

  • 如果为长度、精度或标度属性使用特定值,该值必须与 CREATE FUNCTION 语句中指定(隐式或显式)的值完全匹配。

    FLOAT (n ) 的具体值不必与源函数的定义值完全一致,因为 1<=n<=21 表示 REAL,而 22<=n<=53 表示 DOUBLE。 匹配基于数据类型是 REAL 还是 DOUBLE。

  • 如果没有明确指定长度、精度或比例,也没有指定空括号,则默认使用数据类型的默认长度。 隐式长度必须与 CREATE FUNCTION 语句中指定(隐式或显式)的值完全匹配。

对于具有子类型或编码方案属性的数据类型,指定 FOR 子类型 DATA 子句或 CCSID 子句是可选的。 省略其中一个子句表示 Db2 在确定数据类型是否匹配时忽略该属性。 如果指定任一子句,则必须与 CREATE FUNCTION 语句中隐含或显式指定的值相匹配。

built-in-type
有关内置数据类型的说明,请参阅 CREATE TABLE 语句中的数据类型built-in-type 的说明。
distinct-type-name
不同类型的名称。 更多信息,请参阅 " 不同类型 "。

有关指定参数列表的更多信息,请参阅 CREATE FUNCTION 语句(概述)

显式或隐式模式中必须存在具有该函数签名的函数。

特定函数 specific-name
用具体名称标识函数。 该名称隐含或显式地限定了模式名称。 具体名称(specific-name )必须标识当前服务器上存在的一个具体功能。