函数、方法和过程指示符

本主题描述语法片段,这些片段用于唯一地识别并非在模块中定义的函数、方法或过程。

函数指示符

函数指示符用于唯一地识别单个函数。 函数标志符通常出现在函数 (例如 DROP 或 ALTER) 的 DDL 语句中。 函数指示符不得标识模块函数 (SQLSTATE 42883)。

function-designator
Read syntax diagramSkip visual syntax diagramFUNCTIONfunction-name(,data-type)SPECIFIC FUNCTIONspecific-name
FUNCTION function-name
识别特定函数,并且仅当模式中正好存在一个名为 function-name 的函数实例时才有效。 所识别的函数可以定义有任意数目的参数。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。 如果在指定或暗指的模式中不存在此名称的函数,那么会产生错误 (SQLSTATE 42704)。 如果在指定或暗指的模式中存在该函数的多个实例,那么会产生错误 (SQLSTATE 42725)。
FUNCTION function-name (data-type,...)
提供函数特征符,该特征符唯一地识别函数。 不使用函数解析算法。
function-name
指定函数的名称。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。
(data-type,...)
值必须与 CREATE FUNCTION 语句上相应位置中指定的数据类型匹配。 使用数据类型的数目以及数据类型的逻辑并置来识别特定函数实例。

如果某种数据类型未限定,那么会通过在 SQL 路径上搜索模式来解析类型名称。 这也适用于指定给 REFERENCE 类型的数据类型名称。

不必指定参数化数据类型的长度、精度或小数位。 相反,可以编码一组空的括号,以指出查找数据类型匹配时应忽略这些属性。

不得使用 FLOAT() (SQLSTATE 42601),因为参数值指示不同的数据类型(REAL 或 DOUBLE)。

如果编码长度、精度或小数位,那么该值必须与 CREATE FUNCTION 语句中指定的值完全匹配。 指定字符和图形字符串数据类型的长度时,长度属性的字符串单位必须与 CREATE FUNCTION 语句中指定的字符串单位完全匹配。

A type of FLOAT(N) does not need to match the defined value for N, because 0 < N < 25 means REAL, and 24 < N < 54 means DOUBLE. 匹配会根据类型是 REAL 还是 DOUBLE 来进行。

如果在指定或暗指的模式中不存在具有指定特征符的函数,那么会产生错误 (SQLSTATE 42883)。

SPECIFIC FUNCTION specific-name
使用在创建函数时指定或缺省的名称来识别特定的用户定义函数。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。 specific-name 必须识别所指定或暗指的模式中的特定函数实例,否则会产生错误 (SQLSTATE 42704)。

方法指示符

方法指示符用于唯一地识别单个方法。 方法指示符通常出现在方法的 DDL 语句(例如,DROP 或 ALTER)中。

method-designator
Read syntax diagramSkip visual syntax diagramMETHODmethod-name(,data-type)FORtype-nameSPECIFIC METHODspecific-name
METHOD 方法名称
识别特定方法,并且仅当类型 type-name 正好有一个名为 method-name 的方法实例时才有效。 所识别的方法可以定义有任意数目的参数。 如果该类型没有所指定名称的方法,那么会产生错误 (SQLSTATE 42704)。 如果该类型有该方法的多个实例,那么会产生错误 (SQLSTATE 42725)。
METHOD 方法名称 (data type , ...)
提供方法特征符,该特征符唯一地识别方法。 不使用方法解析算法。
方法名
指定类型 type-name 的方法名称。
(data-type,...)
值必须与 CREATE TYPE 语句上相应位置中指定的数据类型匹配。 使用数据类型的数目以及数据类型的逻辑并置来识别特定方法实例。

如果某种数据类型未限定,那么会通过在 SQL 路径上搜索模式来解析类型名称。 这也适用于指定给 REFERENCE 类型的数据类型名称。

不必指定参数化数据类型的长度、精度或小数位。 相反,可以编码一组空的括号,以指出查找数据类型匹配时应忽略这些属性。

不得使用 FLOAT() (SQLSTATE 42601),因为参数值指示不同的数据类型(REAL 或 DOUBLE)。

如果编码长度、精度或小数位,那么该值必须与 CREATE TYPE 语句中指定的值完全匹配。 指定字符和图形字符串数据类型的长度时,长度属性的字符串单位必须与 CREATE TYPE 语句中指定的字符串单位完全匹配。

A type of FLOAT(N) does not need to match the defined value for N, because 0 < N < 25 means REAL, and 24 < N < 54 means DOUBLE. 匹配会根据类型是 REAL 还是 DOUBLE 来进行。

如果在指定或暗指的模式中不存在该类型的具有指定特征符的方法,那么会产生错误 (SQLSTATE 42883)。

对于 type-name
指定要与所指定方法相关联的类型。 该名称必须识别已在目录中描述的类型 (SQLSTATE 42704)。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。
特定方法 specific-name
使用在创建方法时指定或缺省的名称来识别特定的方法。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。 specific-name 必须识别所指定或暗指的模式中的特定方法实例,否则会产生错误 (SQLSTATE 42704)。

过程指示符

过程指示符用于唯一地识别单个过程。 过程指示符通常出现在过程 (例如 DROP 或 ALTER) 的 DDL 语句中。 过程指示符不得标识模块过程 (SQLSTATE 42883)。

procedure-designator
Read syntax diagramSkip visual syntax diagramPROCEDUREprocedure-name(,data-type)SPECIFIC PROCEDUREspecific-name
PROCEDURE procedure-name
识别特定过程,并且仅当模式中正好存在一个名为 procedure-name 的过程实例时才有效。 所识别的过程可以定义有任意数目的参数。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。 如果在指定或暗指的模式中不存在此名称的过程,那么会产生错误 (SQLSTATE 42704)。 如果在指定或暗指的模式中存在该过程的多个实例,那么会产生错误 (SQLSTATE 42725)。
PROCEDURE procedure-name (data-type,...)
提供过程特征符,该特征符唯一地识别过程。 不使用过程解析算法。
procedure-name
指定过程的名称。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。
(data-type,...)
值必须与 CREATE PROCEDURE 语句上相应位置中指定的数据类型匹配。 使用数据类型的数目以及数据类型的逻辑并置来识别特定过程实例。

如果某种数据类型未限定,那么会通过在 SQL 路径上搜索模式来解析类型名称。 这也适用于指定给 REFERENCE 类型的数据类型名称。

不必指定参数化数据类型的长度、精度或小数位。 相反,可以编码一组空的括号,以指出查找数据类型匹配时应忽略这些属性。

不得使用 FLOAT() (SQLSTATE 42601),因为参数值指示不同的数据类型(REAL 或 DOUBLE)。

如果编码长度、精度或小数位,那么该值必须与 CREATE PROCEDURE 语句中指定的值完全匹配。 指定字符和图形字符串数据类型的长度时,长度属性的字符串单位必须与 CREATE PROCEDURE 语句中指定的字符串单位完全匹配。

A type of FLOAT(N) does not need to match the defined value for N, because 0 < N < 25 means REAL, and 24 < N < 54 means DOUBLE. 匹配会根据类型是 REAL 还是 DOUBLE 来进行。

如果在指定或暗指的模式中不存在具有指定特征符的过程,那么会产生错误 (SQLSTATE 42883)。

特定过程 specific-name
使用在创建过程时指定或缺省的名称来识别特定的过程。 在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。 specific-name 必须识别所指定或暗指的模式中的特定过程实例,否则会产生错误 (SQLSTATE 42704)。