Catégories :

DDL pour les fonctions définies par l’utilisateur, les fonctions externes et les procédures stockées

ALTER EXTERNAL FUNCTION

Modifie les propriétés d’une fonction externe existante.

Voir aussi :

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

Syntaxe

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 }

Paramètres

nom:

Spécifie l’identificateur pour la fonction.

L’identifiant peut contenir le nom du schéma et le nom de la base de données, ainsi que le nom de la fonction.

( [ type_données_arg ] [ , ... ] )

Spécifie les arguments/types de données d’entrée pour la fonction externe.

Si la fonction accepte des arguments, la commande ALTER doit spécifier les types d’arguments, car les fonctions prennent en charge le surchargement de nom (plus précisément, deux fonctions dans le même schéma peuvent avoir le même nom), et les types d’arguments sont utilisés pour identifier la fonction.

nom_intégration_api

Il s’agit du nom de l’objet d’intégration API qui doit être utilisé pour authentifier l’appel au service proxy.

Plus de détails sur ce paramètre sont dans CREATE EXTERNAL FUNCTION.

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

Cette clause permet à des utilisateurs de joindre des métadonnées de valeurs clés envoyées avec chaque demande.

La valeur doit être une chaîne constante, pas une expression.

Plus de détails sur ce paramètre sont dans CREATE EXTERNAL FUNCTION.

CONTEXT_HEADERS (...)

Ceci est similaire à headers, mais au lieu de n’autoriser que des chaînes constantes, cela permet de lier les résultats de la fonction de contexte Snowflake aux en-têtes HTTP.

Chaque valeur doit être le nom d’une fonction de contexte. Les noms ne doivent pas être placés entre guillemets.

Plus de détails sur ce paramètre sont dans CREATE EXTERNAL FUNCTION.

COMPRESSION = <compression_type>

Si cette clause est spécifiée, la charge utile JSON est compressée au format spécifié lorsqu’elle est envoyée de Snowflake au service proxy et lorsqu’elle est renvoyée du service proxy à Snowflake.

Pour plus de détails sur les valeurs valides de <compression_type>, voir CREATE EXTERNAL FUNCTION.

nouveau_nom

Lorsque vous renommez la fonction, cela spécifie le nouvel identifiant de la fonction.

L’identificateur n’a pas besoin d’être unique pour le schéma dans lequel la fonction est créée, parce que les fonctions sont identifiées et résolues par leurs noms et types d’arguments. Cependant, la signature (nom et types de données de paramètres) doit être unique dans le schéma.

Le nom doit suivre les règles des identificateurs Snowflake. Pour plus de détails, voir Exigences relatives à l’identificateur.

Note

Lorsque vous spécifiez le nouveau nom de la fonction externe, ne spécifiez pas de types de données d’argument ni de parenthèses ; la fonction continuera d’utiliser les mêmes arguments qu’auparavant.

Notes sur l’utilisation

  • Lorsqu’un objet est renommé, les autres objets qui le référencent doivent être mis à jour avec le nouveau nom.

  • Il n’y a pas de commande UNSET pour API_INTEGRATION. La modification de API_INTEGRATION est possible, mais pas la désactivation.

Exemples

Renommez la fonction function1 en function2:

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

Convertissez une fonction régulière function2 en fonction sécurisée :

ALTER EXTERNAL FUNCTION function2(number) SET SECURE;

Renommez une fonction externe :

ALTER EXTERNAL FUNCTION function3(number) RENAME TO function3b;