ALTER FUNCTION (DMF)

修改现有数据指标函数的属性 (DMF)。

要对 DMF 进行任何其他更改,必须使用 DROP FUNCTION 命令删除该函数,然后重新创建 DMF。

语法

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  RENAME TO <new_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  SET SECURE

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  UNSET SECURE

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  SET COMMENT = '<string_literal>'

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  UNSET COMMENT

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER FUNCTION [ IF EXISTS ] <name> ( TABLE(  <arg_data_type> [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ] )
  UNSET TAG <tag_name> [ , <tag_name> ... ]
Copy

参数

name

指定要更改的 DMF 标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

TABLE( arg_data_type [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ]

指定 DMF 列实参的数据类型。数据类型是必要的,因为 DMFs 支持名称重载,其中位于同一架构中的两个 DMFs 可以具有相同的名称。实参数据类型用于识别您要更改的 DMF。

RENAME TO new_name

为 DMF 指定新标识符;标识符和现有实参数据类型的组合对于架构必须是唯一的。

有关更多信息,请参阅 标识符要求

备注

为 UDF 指定新名称时,不要指定实参数据类型或括号,只能指定新名称。

可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定 new_name 值,该值分别以 db_name.schema_name.object_nameschema_name.object_name 的形式包含新数据库和/或架构名称。

备注

  • 目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。

  • 除非 对象所有者(即拥有对象 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。

重命名对象时,引用该对象的其他对象必须使用新名称进行更新。

SET ...

指定要为 DMF 设置的属性:

SECURE

指定函数是否安全。有关更多信息,请参阅 使用安全 UDFs 和存储过程保护敏感信息

COMMENT = 'string_literal'

添加注释或覆盖函数的现有注释。指定的值将显示在 SHOW FUNCTIONSSHOW USER FUNCTIONS 输出中的 DESCRIPTION 列。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

有关在语句中指定标签的信息,请参阅 Tag quotas

UNSET ...

指定要为函数取消设置的属性,这会将其重置为默认值。

  • SECURE

  • COMMENT

  • TAG tag_name [ , tag_name ... ]

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

数据指标函数

APPLY

标签

允许对 DMF 设置标签。

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 如果要更新现有的数据指标函数,并需要查看函数的当前定义,请运行 DESCRIBE FUNCTION (DMF) 命令或调用 GET_DDL 函数。

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

您可以使用 ALTER FUNCTION 命令确保 DMF 安全。有关其对函数安全的意义的更多信息,请参阅 使用安全 UDFs 和存储过程保护敏感信息

ALTER FUNCTION governance.dmfs.count_positive_numbers(
 TABLE(
   NUMBER,
   NUMBER,
   NUMBER
))
SET SECURE;
Copy
语言: 中文