DB2 函数的全名是 schema-name.function-name,
其中,schema-name 是为 SQL 对象提供逻辑分组的标识符。DB2 Extender UDF 的模式名是 MMDBSYS。MMDBSYS 模式名也是 DB2 Extender UDT 的限定符。
可在引用 UDF 或 UDT 的任何位置使用全名。例如,MMDBSYS.CONTENT 标识模式名为 MMDBSYS,函数名为 CONTENT 的 UDF。MMDBSYS.DB2IMAGE 标识模式是 MMDBSYS,单值类型名是 DB2IMAGE 的 UDT。引用 UDF 或 UDT 时,也可省略模式名;在此情况下, DB2 使用函数路径来确定想要的函数或单值数据类型。
函数路径是模式名的有序列表。DB2 使用列表中模式名的次序来解析对函数和单值数据类型的引用。可通过指定 SQL 语句 SET CURRENT FUNCTION PATH 来指定函数 路径。 这将在 CURRENT FUNCTION PATH 专用寄存器中设置函数路径。
对于 DB2 extenders,明智的选择是将 mmdbsys 模式添加至函数路径。这允许您输入 DB2 Extender UDF 和 UDT 名而不必对它们加上前缀 mmdbsys。以下是将 mmdbsys 模式添加至函数路径的示例:
SET CURRENT FUNCTION PATH = mmdbsys,CURRENT FUNCTION PATH
若注册为 mmdbsys,则不要添加 mmdbsys 作为函数路径中的第一个模式:若用 mmdbsys 用户 ID 注册, 则函数路径中的第一个模式设置为 mmdbsys。之后,若尝试用 SET CURRENT FUNCTION PATH 语句将函数路径中的第一个模式设置为 mmdbsys,则函数 路径将以两个 mmdbsys 模式开始-而这是错误的状态。
可重载函数名。这表示多个 UDF 即使在同一模式中,也可具有同一名称。但是,两个函数不能具有同一特征符。特征符是限定函数名与定义的所有函数参数的数据类型的并置。