Kategorien:

DDL für benutzerdefinierte Funktionen, externe Funktionen und gespeicherte Prozeduren

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:

Externe Funktionen, UDFs (Benutzerdefinierte 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 COMMENT = '<string_literal>'

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

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

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 }

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 ...

SECURE

Gibt an, ob eine Funktion sicher ist. Weitere Details dazu finden Sie unter Sichere UDFs.

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.

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 (...)

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.

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;

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

ALTER FUNCTION function2(number) SET SECURE;

Externe Funktionen

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

ALTER FUNCTION function4(number) SET api_integration = api_integration_2;

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

ALTER FUNCTION function5(number) SET max_batch_rows = 100;
Zurück zum Anfang