ALTER FUNCTION

Ändert die Eigenschaften einer vorhandenen benutzerdefinierten oder externen Funktion.

Um weitere Änderungen an einer UDF vorzunehmen, müssen Sie die Funktion (mit DROP FUNCTION) löschen und dann neu erstellen.

Siehe auch:

Schreiben von externen Funktionen, Übersicht zu benutzerdefinierten Funktionen, CREATE FUNCTION, DROP FUNCTION, SHOW USER FUNCTIONS, DESCRIBE FUNCTION, CREATE EXTERNAL FUNCTION, DESCRIBE FUNCTION, DROP FUNCTION, SHOW EXTERNAL FUNCTIONS

Syntax

Benutzerdefinierte und externe Funktionen

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

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET LOG_LEVEL = '<log_level>'

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET TRACE_LEVEL = '<trace_level>'

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

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

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET { SECURE | LOG_LEVEL | TRACE_LEVEL | COMMENT }

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

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

Externe Funktionen

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET API_INTEGRATION = <api_integration_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET HEADERS = ( [ '<header_1>' = '<value>' [ , '<header_2>' = '<value>' ... ] ] )

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET CONTEXT_HEADERS = ( [ <context_function_1> [ , <context_function_2> ...] ] )

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET MAX_BATCH_ROWS = <integer>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET COMPRESSION = <compression_type>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET { REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR } = <udf_name>

ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) UNSET
              { COMMENT | HEADERS | CONTEXT_HEADERS | MAX_BATCH_ROWS | COMPRESSION | SECURE | REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR }
Copy

Parameter

Benutzerdefinierte und externe Funktionen

name

Gibt den Bezeichner für die zu ändernde UDF an. Der Bezeichner kann den Schemanamen und den Datenbanknamen sowie den Funktionsnamen enthalten. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

arg_data_type [ , ... ]

Gibt die Datentypen der Argumente/Eingaben für die externe Funktion an.

Wenn die Funktion Argumente akzeptiert, muss der Befehl ALTER die Argumenttypen angeben, da Funktionen das Überladen von Namen unterstützen (d. h. zwei Funktionen im selben Schema können denselben Namen haben) und die Argumenttypen zur Identifizierung der Funktion verwendet werden.

SET ...

Gibt die Eigenschaften an, die für die Funktion festgelegt werden sollen:

SECURE

Gibt an, ob eine Funktion sicher ist. Weitere Details dazu finden Sie unter Schutz sensibler Informationen mit sicheren UDFs und gespeicherten Prozeduren.

LOG_LEVEL = 'log_level'

Gibt den Schweregrad von Meldungen an, die in die aktive Ereignistabelle erfasst und zur Verfügung gestellt werden sollen. Meldungen des angegebenen Schweregrads (und mit höherem Schweregrad) werden erfasst.

Weitere Informationen zu Protokolliergraden finden Sie unter LOG_LEVEL. Weitere Informationen zum Festlegen des Protokolliergrads finden Sie unter Einstellen des Protokolliergrads.

TRACE_LEVEL = 'trace_level'

Steuert, wie Ablaufverfolgungsereignisse in der Ereignistabelle erfasst werden.

Weitere Informationen zu Protokolliergraden finden Sie unter TRACE_LEVEL. Weitere Informationen zum Festlegen der Ablaufverfolgungsebene finden Sie unter Einstellen des Protokolliergrads (Ablaufverfolgungsebene).

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar für die Funktion. Der von Ihnen angegebene Wert wird in der Spalte DESCRIPTION der Ausgabe SHOW FUNCTIONS und SHOW USER FUNCTIONS angezeigt.

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

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

UNSET ...

Gibt die Eigenschaften an, die für die Funktion nicht gesetzt werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden.

Benutzerdefinierte Funktionen

RENAME TO new_name

Gibt den neuen Bezeichner für die UDF an. Die Kombination aus dem Bezeichner und den vorhandenen Argumentdatentypen muss für das Schema eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Bemerkung

Wenn Sie den neuen Namen für die UDF angeben, verwenden Sie keine Argumentdatentypen oder Klammern, sondern geben Sie nur den neuen Namen an.

Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten new_name-Wert an, der den neuen Datenbank- und/oder Schemanamen im Format db_name.schema_name.object_name bzw. schema_name.object_name enthält.

Bemerkung

  • Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.

  • Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.

Wenn ein Objekt umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

Externe Funktionen

RENAME TO new_name

Gibt den neuen Bezeichner der Funktion an.

Der Bezeichner muss für das Schema, in dem die Funktion erstellt wird, nicht eindeutig sein, da Funktionen durch ihren Namen und ihre Argumenttypen identifiziert und aufgelöst werden. Die Signatur (Name und Datentypen der Parameter) muss jedoch innerhalb des Schemas eindeutig sein.

name muss den Snowflake-Regeln für Bezeichner folgen. Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Bemerkung

Wenn Sie den neuen Namen für die externe Funktion angeben, dürfen Sie keine Argumentdatentypen oder Klammern verwenden. Die Funktion wird weiterhin dieselben Argumente wie zuvor verwenden.

api_integration_name

Dies ist der Name des API-Integrationsobjekts, das zur Authentifizierung des Aufrufs an den Proxydienst verwendet werden soll.

Weitere Details zu diesem Parameter finden Sie unter CREATE EXTERNAL FUNCTION.

HEADERS = ( 'header_1' = 'value' [ , 'header_2' = 'value' ... ] )

Mit dieser Klausel können Benutzer Schlüsselwert-Metadaten anhängen, die bei jeder Anforderung gesendet werden.

Der Wert muss eine konstante Zeichenfolge sein, kein Ausdruck.

Weitere Details zu diesem Parameter finden Sie unter CREATE EXTERNAL FUNCTION.

CONTEXT_HEADERS = ( [ context_function_1 [ , context_function_2 ... ] ] )

Dies ähnelt HEADERS, lässt jedoch nicht nur konstante Zeichenfolgen zu, sondern bindet auch die Ergebnisse der Snowflake-Kontextfunktion an HTTP-Header.

Jeder Wert muss der Name einer Kontextfunktion sein. Die Namen sollten nicht in Anführungszeichen gesetzt werden.

Weitere Details zu diesem Parameter finden Sie unter CREATE EXTERNAL FUNCTION.

COMPRESSION = compression_type

Bei Angabe dieser Klausel wird die JSON-Nutzlast in ein spezifisches Format komprimiert, wenn sie von Snowflake an den Proxydienst gesendet und vom Proxydienst an Snowflake zurückgesendet wird.

Weitere Informationen zu gültigen Werten von compression_type (<Komprimierungstyp>) finden Sie unter CREATE EXTERNAL FUNCTION.

{ REQUEST_TRANSLATOR | RESPONSE_TRANSLATOR } = udf_name

Fügen Sie einen Anforderungsübersetzer oder einen Antwortübersetzer hinzu, wenn die externe Funktion noch keinen hat, oder ersetzen Sie einen vorhandenen Anforderungsübersetzer oder Antwortübersetzer, indem Sie den Namen einer zuvor erstellten JavaScript-UDF angeben. Weitere Informationen dazu finden Sie unter Verwendung von Anforderungs- und Antwortübersetzern mit Daten für einen Remotedienst.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

USAGE

Funktion

Ermöglicht den Aufruf einer UDF oder externen Funktion.

APPLY

Tag

Ermöglicht das Setzen eines Tags auf eine UDF oder eine externe Funktion.

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Benutzerdefinierte Funktionen

Externe Funktionen

  • Es gibt keinen UNSET-Befehl für API_INTEGRATION. Sie können API_INTEGRATION ändern, aber nicht deaktivieren. Weitere Informationen dazu finden Sie unter ALTER API INTEGRATION.

Beispiele

Umbenennen der Funktion function1 in function2:

ALTER FUNCTION IF EXISTS function1(number) RENAME TO function2;
Copy

Konvertieren eine reguläre Funktion function2 in eine sichere Funktion:

ALTER FUNCTION function2(number) SET SECURE;
Copy

Externe Funktionen

Ändern der API-Integration für eine externe Funktion:

ALTER FUNCTION function4(number) SET API_INTEGRATION = api_integration_2;
Copy

Festlegen der maximalen Anzahl von Zeilen pro Batch für eine externe Funktion:

ALTER FUNCTION function5(number) SET MAX_BATCH_ROWS = 100;
Copy