Kategorien:

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

ALTER EXTERNAL FUNCTION

Ändert die Eigenschaften einer vorhandenen externen Funktion.

Siehe auch:

CREATE EXTERNAL FUNCTION, DESCRIBE FUNCTION, DROP FUNCTION, SHOW EXTERNAL FUNCTIONS

Syntax

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

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> , ... ] ) RENAME TO <new_name>

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

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

Bemerkung

Obwohl der Befehl manchmal als „ALTER EXTERNAL FUNCTION“ bezeichnet wird, lautet die Syntax des Befehls immer ALTER FUNCTION, ohne das Wort EXTERNAL. Die Klauseln, die für externe Funktionen spezifisch sind, sind lediglich optionale Klauseln des Befehls ALTER FUNCTION.

Parameter

Name:

Gibt den Bezeichner der Funktion an.

Der Bezeichner kann den Schemanamen und den Datenbanknamen sowie den Funktionsnamen enthalten.

( [ Datentyp_des_Arguments ] [ , ... ] )

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.

API-Integrationsname

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 <Komprimierungstyp> finden Sie unter CREATE EXTERNAL FUNCTION.

RENAME TO neuer_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.

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

Nutzungshinweise

  • Das Verschieben einer externen Funktion in ein verwaltetes Zugriffsschema (unter Verwendung der ALTER FUNCTION ... RENAME TO-Syntax) ist nicht erlaubt, es sei denn, der Eigentümer der externen Funktion (d. h. die Rolle mit der Berechtigung OWNERSHIP für die externe Funktion) ist auch Eigentümer des Zielschemas.

  • Es gibt keinen UNSET-Befehl für API_INTEGRATION. Sie können API_INTEGRATION ändern, aber nicht deaktivieren.

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;

Umbenennen einer externe Funktion:

ALTER FUNCTION function3(number) RENAME TO function3b;