SnowConvert AI - Redshift - CREATE PROCEDURE¶
Description¶
Crée une nouvelle procédure stockée ou remplace une procédure existante pour la base de données actuelle. (Procédure de création de référence linguistique Redshift SQL).
Pour plus d’informations sur les clauses de procédure, reportez-vous aux définitions suivantes :
Grammar Syntax¶
The following is the SQL syntax to create a Procedure in Amazon Redshift. See the Redshift CREATE PROCEDURE specification for this syntax.
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
ALIAS DECLARATION¶
Description¶
Si la signature de la procédure stockée omet le nom de l’argument, vous pouvez déclarer un alias pour l’argument.
Il n’y a pas de support pour cela dans Snowflake.
Pour parvenir à une équivalence fonctionnelle, les alias seront supprimés et toutes les utilisations seront renommées.
Lorsqu’un alias est déclaré pour un paramètre sans nom, un nom généré sera créé pour le paramètre et les utilisations. Lorsque l’alias concerne un paramètre avec un nom, l’alias sera remplacé par le vrai nom du paramètre.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
ARGUMENTS MODE¶
Description¶
Les procédures stockées Amazon Redshift prennent en charge les paramètres qui peuvent être transmis lors de l’invocation de la procédure. Ces paramètres vous permettent de fournir des valeurs d’entrée, de récupérer des valeurs de sortie ou de les utiliser pour des opérations d’entrée et de sortie. Vous trouverez ci-dessous une explication détaillée des types de paramètres, de leurs modes et des exemples de leur utilisation. Snowflake ne prend en charge que les valeurs d’entrée.
IN (Paramètres d’entrée)¶
Objet : permet de transmettre des valeurs à la procédure.
Mode par défaut : si aucun mode n’est spécifié, les paramètres sont considérés comme IN.
Comportement : les valeurs transmises à la procédure ne peuvent pas être modifiées à l’intérieur de la procédure.
OUT (Paramètres de sortie)¶
Objet : utilisé pour renvoyer des valeurs de la procédure.
Comportement : les paramètres peuvent être modifiés à l’intérieur de la procédure et sont renvoyés à l’appelant. Vous ne pouvez pas envoyer de valeur initiale.
INOUT (Paramètres d’entrée/sortie)¶
Objet : permet de transmettre des valeurs à la procédure et de les modifier pour qu’elles renvoient des valeurs actualisées.
Comportement : combine le comportement de IN et OUT. Vous devez envoyer une valeur initiale quelle que soit la sortie.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SCC-EWI-0028 : type non pris en charge par Snowflake.
SSC-EWI-RS0010 : l’appel de procédure de niveau supérieur avec des paramètres de sortie n’est pas pris en charge.
PROCEDURE BODY¶
Indication
SnowConvert does not support translation for PostgreSQL string constant definition in procedures. Use arrange option
Description¶
Comme Redshift, Snowflake prend en charge CREATE PROCEDURE en utilisant $$ procedure_logic $$ comme corps. Il existe une différence dans la syntaxe Redshift où un mot peut être à l’intérieur de $$ comme $word$ et utilisé comme corps de délimiteur comme $word$ procedure_logic $word$. SnowConvert AI le transformera en supprimant le mot et en laissant $$.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
BLOCK STATEMENT¶
Description¶
PL/pgSQL est une langage structuré en blocs. Le corps complet d’une procédure est défini dans un bloc, qui contient des déclarations de variables et des instructions PL/pgSQL. Une instruction peut également être un bloc imbriqué ou un sous-bloc.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
DECLARE¶
Description¶
Section pour déclarer toutes les variables de procédure à l’exception des variables de boucle.\ Redshift prend en charge plusieurs sections DECLARE par instruction de bloc, puisque Snowflake ne prend pas en charge ce comportement, elles doivent être fusionnées en une seule instruction de déclaration par bloc.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
EXCEPTION¶
Description¶
Lorsqu’une exception se produit et que vous ajoutez un bloc de gestion des exceptions, vous pouvez écrire des instructions RAISE et la plupart des autres instructions PL/pgSQL. Par exemple, vous pouvez lever une exception avec un message personnalisé ou insérer un enregistrement dans une table de connexion.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
LABEL¶
Description¶
Les étiquettes sont utilisées dans Redshift pour qualifier un bloc ou pour utiliser l’instruction EXIT ou END. Snowflake ne prend pas en charge les étiquettes.
Avertissement
Les étiquettes n’étant pas prises en charge par Snowflake, un EWI sera imprimée
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SSC-EWI-0094 : déclaration d’étiquette non prise en charge.
NONATOMIC¶
Description¶
Le NONATOMIC effectue une validation après chaque instruction de la procédure stockée. Snowflake prend en charge un paramètre AUTOCOMMIT . Le paramètre par défaut pour AUTOCOMMIT est TRUE (activé).
Lorsque AUTOCOMMIT est activé, chaque instruction en dehors d’une transaction explicite est traitée comme à l’intérieur de sa transaction implicite à une seule instruction. En d’autres termes, cette instruction est automatiquement validée si elle réussit et automatiquement annulée si elle échoue. En d’autres termes, Snowflake fonctionne comme NONATOMIC « par défaut ».
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
POSITIONAL ARGUMENTS¶
Description¶
Redshift prend en charge les paramètres sans nom en référençant les paramètres selon leur position à l’aide de $. Snowflake ne prend pas en charge ce comportement. Pour garantir l’équivalence fonctionnelle, SnowConvert AI peut convertir ces références par le nom du paramètre si le nom est présent dans la définition. Si non, SnowConvert AI générera un nom pour le paramètre et les utilisations seront remplacées par le nouveau nom.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
RAISE¶
Description¶
Utilisez l’instruction de
RAISE levelpour signaler des messages et des erreurs.
Remarque
Les instructions RAISE sont entièrement prises en charge par Snowflake.
Grammar Syntax¶
Dans Amazon Redshift, l’instruction RAISE est utilisée pour générer des messages dans la console ou lancer des exceptions personnalisées. Redshift vous permet de spécifier différents niveaux pour indiquer la gravité du message. Dans Snowflake, cette fonctionnalité peut être émulée à l’aide d’une fonction définie par l’utilisateur (UDF) qui appelle la console en fonction du niveau spécifié.
Exception :\ Lorsque le niveau est « EXCEPTION », une exception personnalisée est levée avec un message général : « To view the EXCEPTION MESSAGE, you need to check the log » (pour afficher le messsage d’exception, vous devez vérifier le journal), le code d’exception est
-20002, ce qui indique à l’utilisateur que le message personnalisé se trouve dans le journal. Cela est dû aux limites de l’envoi d’exceptions personnalisées dans Snowflake.Avertissement :\ Si le niveau est « WARNING »,
SYSTEM$LOG_WARNest utilisé pour imprimer le message d’avertissement dans le journal de Snowflake, ce qui permet de mettre en évidence les problèmes potentiels sans interrompre le flux d’exécution.Info :\ Pour tout autre niveau (tel que « INFO »),
SYSTEM$LOG_INFOest utilisé pour imprimer le message dans le journal de la console, ce qui permet d’obtenir des informations plus détaillées sur l’état du système sans provoquer d’interruptions critiques.
Cette approche permet d’émuler les fonctionnalités des niveaux de gravité de Redshift, en les adaptant à la syntaxe et aux fonctions de Snowflake, tout en conservant la flexibilité et le contrôle sur les messages et les exceptions générés lors de l’exécution.
Limitations
Pour voir les journaux dans Snowflake, il est nécessaire d’avoir des privilèges spécifiques, tels que les rôles
ACCOUNTADMINouSECURITYADMIN.Les journaux dans Snowflake ne sont pas disponibles immédiatement et il peut y avoir un léger délai avant que l’information ne soit visible.
Les messages d’erreur personnalisés dans les exceptions ne sont pas affichés comme dans Redshift. Pour voir les messages personnalisés, vous devez accéder directement aux connecteurs.
Pour plus d’informations, consultez la [page] suivante (https://docs.snowflake.com/developer-guide/logging-tracing/logging-snowflake-scripting).
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
UDFs ¶
RAISE_MESSAGE_UDF¶
STRING_FORMAT_UDF¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
RETURN¶
Description¶
L’instruction RETURN renvoie à l’appelant une procédure stockée. (Référence linguistique Redshift SQL Return).
La conversion de l’instruction de retour d’Amazon Redshift vers Snowflake est simple, il suffit d’envisager l’ajout de NULL à l’instruction return sur Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Cas simple¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Lorsque la procédure a des paramètres de sortie¶
SnowConvert AI renvoie une variante avec des paramètres définis comme paramètres de sortie. Ainsi, pour chaque renvoi, SnowConvert AI ajoutera une variante comme valeur de retour.
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
SECURITY (DEFINER | INVOKER)¶
Description¶
La clause SECURITY des procédures stockées Amazon Redshift définit le contexte de contrôle d’accès et d’autorisations dans lequel la procédure s’exécute. Cela permet de déterminer si la procédure utilise les privilèges du propriétaire (créateur) ou de l’appelant (utilisateur invoquant la procédure).
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
VARIABLE DECLARATION¶
Description¶
Déclarez toutes les variables dans un bloc, sauf les variables de boucle, dans la section DECLARE du bloc.
(Déclaration de la variable de référence du langage Redshift SQL)
Remarque
Les déclarations de variables sont entièrement supportées par Snowflake.
Grammar Syntax¶
Dans Redshift, le mot-clé CONSTANT empêche la réaffectation des variables pendant l’exécution. Comme Snowflake ne prend pas en charge ce mot-clé, il est supprimé lors de la transformation. Cela n’a pas d’incidence sur la fonctionnalité, car la logique ne doit pas tenter de réaffecter une variable constante.
La contrainte NOT NULL dans Redshift garantit qu’une variable ne peut pas se voir attribuer une valeur nulle et exige une valeur par défaut non nulle. Comme Snowflake ne prend pas en charge cette contrainte, elle est supprimée lors de la transformation. Toutefois, la valeur par défaut est conservée afin de préserver la fonctionnalité.
Une variable déclarée avec un Refcursor est transformée en type Resultset, pour plus d’informations DECLARE REFCURSOR.
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes¶
SSC-FDM-PG0012 : la contrainte NOT NULL a été supprimée. L’attribution de NULL à cette variable n’entraînera plus d’échec.
TRANSACTIONS¶
COMMIT¶
Description¶
Valide la transaction en cours dans la base de données. Cette commande rend permanentes les mises à jour de la base de données issues de la transaction. (Référence linguistique Redshift SQL COMMIT)
Grammar Syntax
Modèles d’échantillons de sources¶
Données de configuration¶
Redshift¶
Requête¶
Snowflake¶
Requête¶
COMMIT avec le mot-clé TRANSACTION¶
Le mot-clé TRANSACTION n’est pas pris en charge par Snowflake. Toutefois, comme il n’a pas d’incidence sur la fonctionnalité, il sera simplement supprimé.
Redshift¶
Requête¶
Snowflake¶
Requête¶
COMMIT dans une procédure de comportement de transaction par défaut (sans clause NONATOMIC)¶
To avoid out of scope transaction exceptions in Snowflake, the usages of COMMIT will be matched with BEGIN TRANSACTION.
Lorsque plusieurs instructions COMMIT sont présentes dans la procédure, plusieurs instructions BEGIN TRANSACTION seront générées après chaque COMMIT pour émuler le comportement de la transaction Redshift.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
COMMIT dans une procédure avec comportement NONATOMIC¶
Le comportement NONATOMIC de Redshift est émulé dans Snowflake à l’aide du paramètre de session AUTOCOMMIT défini sur true.
Le paramètre de session AUTOCOMMIT étant supposé être vrai par SnowConvert AI, l’instruction COMMIT à l’intérieur des procédures NONATOMIC est laissée telle quelle.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Problèmes connus¶
1. COMMIT à l’intérieur d’un appel de procédure imbriqué
Dans Redshift, lorsqu’une instruction COMMIT est spécifiée dans un appel de procédure imbriqué, la commande engage tout le travail en attente des instructions précédentes dans le champ d’application actuel et le champ d’application parent. La validation des actions du champ parent n’est pas prise en charge dans Snowflake, lorsque ce cas est détecté, un FDM sera généré.
Redshift¶
Requête¶
Snowflake¶
Requête¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SSC-FDM-RS0006 : la procédure appelée contient des utilisations de COMMIT/ROLLBACK, la modification de la transaction en cours dans les champs d’application enfants n’est pas prise en charge dans Snowflake.
ROLLBACK¶
Description¶
Arrête la transaction en cours et annule toutes les mises à jour effectuées par cette transaction. (Référence linguistique ROLLBACK Redshift SQL)
Grammar Syntax
Modèles d’échantillons de sources¶
Données de configuration¶
Redshift¶
Requête¶
Snowflake¶
Requête¶
ROLLBACK avec le mot-clé TRANSACTION¶
Le mot-clé TRANSACTION n’est pas pris en charge par Snowflake. Toutefois, comme il n’a pas d’incidence sur la fonctionnalité, il sera simplement supprimé.
Redshift¶
Requête¶
Snowflake¶
Requête¶
ROLLBACK dans une procédure de comportement de transaction par défaut (sans clause NONATOMIC)¶
To avoid out of scope transaction exceptions in Snowflake, the usages of ROLLBACK will be matched with BEGIN TRANSACTION.
Lorsque plusieurs instructions de contrôle de transaction sont présentes dans la procédure, plusieurs instructions BEGIN TRANSACTION seront générées après chacune d’entre elles afin d’émuler le comportement de transaction de Redshift.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
ROLLBACK dans une procédure avec comportement NONATOMIC¶
Le comportement NONATOMIC de Redshift est émulé dans Snowflake à l’aide du paramètre de session AUTOCOMMIT défini sur true.
Le paramètre de session AUTOCOMMIT étant supposé être vrai par SnowConvert AI, l’instruction ROLLBACK à l’intérieur des procédures NONATOMIC est laissée telle quelle.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Problèmes connus¶
1. ROLLBACK à l’intérieur d’un appel de procédure imbriqué
Dans Redshift, lorsqu’une instruction ROLLBACK est spécifiée dans un appel de procédure imbriqué, la commande engage tout le travail en attente des instructions précédentes dans le champ d’application actuel et le champ d’application parent. La validation des actions du champ parent n’est pas prise en charge dans Snowflake, lorsque ce cas est détecté, un FDM sera généré.
Redshift¶
Requête¶
Snowflake¶
Requête¶
2. ROLLBACK des instructions DDL
In Snowflake, DDL statements perform an implicit commit whenever they are executed inside a procedure, making effective all the work before executing the DDL as well as the DDL itself. This causes the ROLLBACK statement to not be able to discard any changes before that point, this issue will be informed using an FDM.
Redshift¶
Requête¶
Snowflake¶
Requête¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SSC-FDM-RS0006 : la procédure appelée contient des utilisations de COMMIT/ROLLBACK, la modification de la transaction en cours dans les champs d’application enfants n’est pas prise en charge dans Snowflake.
SSC-FDM-RS0007: DDL statements perform an automatic COMMIT in Snowflake. ROLLBACK will not undo DDL-committed changes.
TRUNCATE¶
Description¶
Supprime toutes les lignes d’une table sans effectuer de balayage de la table (Référence linguistique Redshift SQLTRUNCATE)
Grammar Syntax
Modèles d’échantillons de sources¶
Données de configuration¶
Redshift¶
Requête¶
Snowflake¶
Requête¶
TRUNCATE dans une procédure de comportement de transaction par défaut (sans clause NONATOMIC)¶
Comme l’instruction TRUNCATE valide automatiquement la transaction dans laquelle elle est exécutée, chacune de ses utilisations génère une instruction COMMIT dans Snowflake pour émuler ce comportement.
Étant donné qu’une instruction COMMIT est générée, la même instruction BEGIN TRANSACTION sera appliquée à TRUNCATE. Pour plus d’informations, consultez la spécification de traduction COMMIT .
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
TRUNCATE dans une procédure avec comportement NONATOMIC¶
Le comportement NONATOMIC de Redshift est émulé dans Snowflake à l’aide du paramètre de session AUTOCOMMIT défini sur true.
Since the AUTOCOMMIT session parameter is assumed to be true by SnowConvert AI, the TRUNCATE statement inside NONATOMIC procedures is left as is, there is no need to generate a COMMIT statement because every statement is automatically committed when executed.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Problèmes connus¶
1. TRUNCATE à l’intérieur d’un appel de procédure imbriqué
Dans Redshift, lorsqu’une instruction COMMIT est spécifiée dans un appel de procédure imbriqué, la commande engage tout le travail en attente des instructions précédentes dans le champ d’application actuel et le champ d’application parent. La validation des actions du champ parent n’est pas prise en charge dans Snowflake, lorsque ce cas est détecté, un FDM sera généré.
Redshift¶
Requête¶
Snowflake¶
Requête¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SSC-FDM-RS0006 : la procédure appelée contient des utilisations de COMMIT/ROLLBACK, la modification de la transaction en cours dans les champs d’application enfants n’est pas prise en charge dans Snowflake.
CONDITIONS¶
CASE¶
Description¶
L’instruction
CASEde Redshift vous permet de renvoyer des valeurs en fonction de conditions, ce qui permet une logique conditionnelle dans les requêtes. Elle a deux formes : simple et recherchée. (Référence linguistique Redshift SQL Conditionnels : Case).
Cas simple¶
Une simple instruction CASE fournit une exécution conditionnelle basée sur l’égalité des opérandes.
Remarque
Les Case simples sont entièrement pris en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Cas recherché¶
Remarque
Les Case recherchés sont entièrement pris en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
CASE sans ELSE¶
Dans Redshift, lorsqu’une expression CASE est exécutée et qu’aucune des conditions validées n’est remplie, et qu’il n’y a pas de ELSE défini, l’exception “CASE NOT FOUND” est déclenchée. Dans Snowflake, le code s’exécute mais ne renvoie aucun résultat. Pour conserver la même fonctionnalité dans Snowflake dans ce scénario, une exception portant le même nom sera déclarée et exécutée si aucune des conditions de CASE n’est remplie.
Remarque
Les Case sans Else sont entièrement pris en charge par Snowflake.
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
IF¶
Description¶
Cette instruction vous permet de prendre des décisions en fonction de certaines conditions. (Référence linguistique Redshift SQL Conditionnels : IF).
SnowConvert AI ajoutera les parenthèses dans les conditions et modifiera le mot-clé ELSIF en ELSEIF puisque Redshift ne nécessite pas de parenthèses dans les conditions et que ELSIF est le mot-clé.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
LOOPS¶
Description¶
Ces instructions sont utilisées pour répéter un bloc de code jusqu’à la condition spécifiée. (Référence linguistique Redshift SQL Boucles).
CONTINUE¶
Description¶
Lorsque les conditions CONTINUE sont true, la boucle peut continuer l’exécution, lorsqu’elles sont fausses, la boucle s’arrête. (Référence linguistique Redshift SQL Conditionnels : CONTINUE ).
Avertissement
CONTINUE sont partiellement pris en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Résultats¶
Sortie de la console |
|---|
1 |
2 |
3 |
4 |
6 |
7 |
Code de sortie :¶
Snowflake¶
Résultats¶
Sortie de la console |
|---|
1 |
2 |
3 |
4 |
6 |
7 |
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
EXIT¶
Description¶
Arrêtez l’exécution de la boucle lorsque les conditions définies dans l’instruction WHEN sont true (Reférence linguistique Redshift SQL Conditionnels : EXIT).
Avertissement
EXIT sont partiellement pris en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
FOR¶
Grammar Syntax¶
Variante entière
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
SSC-EWI-PG0006 : le référencement d’une variable avec l’étiquette n’est pas pris en charge par Snowflake.
LOOP¶
Description¶
Une boucle simple définit une boucle inconditionnelle qui est répétée indéfiniment jusqu’à ce qu’elle soit terminée par une instruction EXIT ou RETURN. (Référence linguistique Redshift SQL Conditionnels : Simple Loop).
Avertissement
Les Simple Loop sont partiellement prises en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
WHILE¶
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
CURSORS¶
CLOSE CURSOR¶
Description¶
Ferme toutes les ressources libres associées à un curseur ouvert. (Référence linguistique Redshift SQL Close Cursor ).
Remarque
Cette syntaxe est entièrement prise en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
FETCH CURSOR¶
Description¶
Récupère les lignes à l’aide d’un curseur. (Référence linguistique Redshift SQL Fetch)
Informations sur la transformation
Modèles d’échantillons de sources¶
Données de configuration¶
Redshift¶
Requête¶
Snowflake¶
Requête¶
Fetch into¶
L’instruction FETCH into de Redshift est totalement équivalente dans Snowflake
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Problèmes connus¶
1. La recherche sans variables cibles n’est pas prise en charge
Snowflake exige que l’instruction FETCH spécifie la clause INTO avec les variables dans lesquelles les valeurs des lignes récupérées seront stockées. Lorsqu’une instruction FETCH est trouvée dans le code sans clause INTO, un EWI est généré.
Code d’entrée :
Code de sortie :
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes¶
SSC-EWI-PG0015 : le curseur Fetch sans variables cibles n’est pas pris en charge dans Snowflake
OPEN CURSOR¶
Description¶
Avant de pouvoir utiliser un curseur pour récupérer des lignes, il faut l’ouvrir. (Référence linguistique Redshift SQL Open Cursor).
Remarque
Cette syntaxe est entièrement prise en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Données de configuration¶
Redshift¶
Requête¶
Snowflake¶
Requête¶
Ouvrir le curseur sans arguments¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Ouvrir le curseur avec des arguments¶
Cursor arguments have to be bound per each one of its uses, SnowConvert AI will generate the bindings, as well as reorder and repeat the passed values to the OPEN statement as needed to satisfy the bindings.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Ouvrir le curseur avec les paramètres de la procédure ou les variables locales¶
The procedure parameters or local variables have to be bound per each one of its uses in the cursor query, SnowConvert AI will generate the bindings and add the parameter or variable names to the OPEN statement, even if the cursor originally had no parameters.
Redshift¶
Requête¶
Résultat¶
Snowflake¶
Requête¶
Résultat¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
DECLARE CURSOR¶
Description¶
Définit un nouveau curseur. Utilisez un curseur pour récupérer quelques lignes à la fois dans le jeu de résultats d’une requête plus importante. (Référence linguistique Redshift SQL Declare Cursor).
Remarque
Cette syntaxe est entièrement prise en charge par Snowflake.
Grammar Syntax¶
Modèles d’échantillons de sources¶
Code d’entrée :¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.
DECLARE REFCURSOR¶
Description¶
Le type de données
refcursorcontient simplement une référence à un curseur. Vous pouvez créer une variable curseur en la déclarant comme une variable de typerefcursor(Référence linguistique Redshift SQL Déclaration Refcursor)
Remarque
Les déclarations de curseurs sont entièrement prises en charge par Snowflake.
Grammar Syntax¶
Snowflake ne prenant pas en charge le type de données REFCURSOR, sa fonctionnalité est répliquée en convertissant la variable REFCURSOR en un type RESULTSET. La requête utilisée pour ouvrir REFCURSOR est affectée à la variable RESULTSET, après quoi un nouveau curseur est créé et lié à la variable RESULTSET. En outre, toutes les références au REFCURSOR d’origine dans la logique du curseur sont mises à jour pour utiliser le nouveau curseur, répliquant ainsi la fonctionnalité originale.
Modèles d’échantillons de sources¶
Cas : Usage unique¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Cas : Curseur avec Sql dynamique ¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Redshift¶
Cas : Utilisations multiples : ¶
Code d’entrée :¶
Redshift¶
Code de sortie :¶
Snowflake¶
Problèmes connus¶
Il n’y a pas de problème connu.
EWIs connexes.¶
Il n’y a aucun EWIs associé.