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> ... ]
パラメーター¶
name変更する DMF の識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
TABLE( arg_data_type [ , ... ] ) [ , TABLE( <arg_data_type> [ , ... ] ) ]DMF の列引数のデータ型を指定します。DMFs は、同じスキーマ内の2つの DMFs が同じ名前を持つことができる、名前のオーバーロードをサポートしているため、このデータ型が必要です。引数のデータ型は、変更する DMF の識別に使用されます。
RENAME TO new_nameDMFの新しい識別子を指定します。識別子と既存の引数データ型の組み合わせは、スキーマに対して一意である必要があります。
詳細については、 識別子の要件 をご参照ください。
注釈
UDF の新しい名前を指定する場合は、引数のデータ型または括弧を指定せず、新しい名前のみを指定します。
オプションでオブジェクトの名前を変更して、オブジェクトを別のデータベースやスキーマに移動できます。これを実行するには、新しいデータベース名やスキーマ名をそれぞれ
db_name.schema_name.object_nameまたはschema_name.object_nameの形式で含む、修飾されたnew_name値を指定します。注釈
宛先データベースやスキーマはすでに存在している必要があります。また、同じ名前のオブジェクトが宛先データベースにすでに存在することはできません。存在する場合、ステートメントはエラーを返します。
オブジェクトを管理アクセススキーマに移動することは、オブジェクトの所有者(つまり、オブジェクトに対して OWNERSHIP 権限を持つロール)がターゲットスキーマも所有している場合を 除き 禁止されています。
オブジェクトの名前を変更すると、そのオブジェクトを参照する他のオブジェクトも新しい名前で更新する必要があります。
SET ...DMF に設定するプロパティを指定します。
SECURE機能が安全かどうかを指定します。詳細については、 セキュア UDFs とストアドプロシージャの使用による機密情報の保護 をご参照ください。
COMMENT = 'string_literal'関数のコメントを追加するか、既存のコメントを上書きします。指定した値は、 SHOW FUNCTIONS および SHOW USER FUNCTIONS 出力の
DESCRIPTION列に表示されます。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 Tag quotas をご参照ください。
UNSET ...関数の設定を解除に指定し、プロパティをデフォルトにリセットします。
SECURECOMMENTTAG tag_name [ , tag_name ... ]
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
OWNERSHIP |
データメトリック関数 |
|
APPLY |
タグ |
DMF でタグを設定できるようにします。 |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
既存のデータメトリック関数を更新して、関数の現在の定義を表示する必要がある場合は、 DESCRIBE FUNCTION (DMF) コマンドを実行するか、 GET_DDL 関数を呼び出します。
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
DMF をセキュアにするには、 ALTER FUNCTION コマンドを使用します。関数がセキュアであることの意味については、 セキュア UDFs とストアドプロシージャの使用による機密情報の保護 をご参照ください。
ALTER FUNCTION governance.dmfs.count_positive_numbers(
TABLE(
NUMBER,
NUMBER,
NUMBER
))
SET SECURE;