SnowConvert AI - Teradata - SQL en JavaScript (Procédures)¶
GET DIAGNOSTICS EXCEPTION¶
Référence de traduction pour la conversion des instructions GET DIAGNOSTICS EXCEPTION Teradata pour l’exécution de scripts Snowflake
Description ¶
GET DIAGNOSTICS récupère des informations sur les conditions de réussite, d’exception ou d’achèvement dans la zone de diagnostic.
For more information, see the Teradata GET DIAGNOSTICS documentation.
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Échantillons de modèles de sources ¶
Teradata ¶
Requête¶
Snowflake ¶
Javascript¶
Problèmes connus¶
Instructions d’attributs de condition non prises en charge
CLASS_ORIGIN
CONDITION_IDENTIFIER
CONDITION_NUMBER
MESSAGE_LENGTH
RETURNED_SQLSTATE
SUBCLASS_ORIGIN
If¶
La transformation pour l”instruction IF est la suivante :
Teradata
Snowflake
Case¶
La transformation pour l”instruction Case est la suivante :
Teradata
Snowflake
Déclarer le curseur, OPEN, FETCH et CLOSE¶
La transformation pour les instructions de curseur est la suivante :
Teradata
Curseur¶
Snowflake
Curseur JavaScript¶
Alors que¶
La transformation pour l”instruction while est :
Teradata
While¶
Snowflake¶
While¶
Sécurité¶
La transformation des instructions de sécurité est la suivante :
Teradata |
Snowflake |
|---|---|
SQL SECURITY CREATOR |
EXECUTE AS OWNER |
SQL SECURITY INVOKER |
EXECUTE AS CALLER |
SQL SECURITY DEFINER |
EXECUTE AS OWNER |
Boucle FOR-CURSOR-FOR¶
La transformation pour la boucle FOR-CURSOR-FOR est :
Teradata
Boucle For-Cursor-For¶
Snowflake
Boucle JavaScript For-Cursor-For¶
Note : La boucle FOR présente dans la procédure Teradata est transformée en bloc FOR en javascript qui émule sa fonctionnalité.
Paramètres et variables de procédure référencés dans les instructions¶
La transformation des paramètres et des variables de la procédure qui sont référencés dans les instructions de la procédure est la suivante :
Teradata
Parameters and variables¶
Snowflake
Paramètres et variables JavaScript¶
_Note : Lorsqu’un paramètre de procédure ou une variable déclarée à l’intérieur de la procédure est référencé dans une instruction Teradata qui doit être convertie, _ cette référence est échappée du texte résultant afin de préserver la fonctionnalité de la référence d’origine.
Quitter¶
En Javascript, il est possible d’utiliser break avec un paramètre supplémentaire, émulant ainsi le comportement d’un saut Teradata LEAVE.
Les étiquettes peuvent également être émulées en utilisant des instructions étiquetées en Javascript.
La transformation pour l”instruction LEAVE est la suivante :
Teradata
Leave¶
Snowflake
JavaScript Leave¶
Obtenir des résultats à partir des procédures¶
Description de la traduction¶
Dans Teradata, il existe deux façons de renvoyer des données à partir d’une procédure. La première concerne les paramètres de sortie et la seconde les jeux de résultats dynamiques et les curseurs. Les deux sont illustrés dans l’exemple suivant. Chaque point important est expliqué ci-dessous.
Exemple de retour de données à partir d’une procédure stockée¶
Teradata
Paramètre de sortie¶
Snowflake
Paramètre de sortie JavaScript¶
Dans ce SQL converti, plusieurs conversions ont lieu :
La définition
DYNAMIC RESULT SETS 2est convertie en variableDYNAMIC_RESULTS.
When a cursor with an
WITH RETURNattribute is opened (and therefore a query is executed), its query ID is stored in the_OUTQUERIEScollection to be later returned. The query id is obtained by thegetQueryId()function provided in the JavaScript API for Snowflake stored procedures.Seuls les premiers k-query-IDs sont stockés dans la collection, où k est la valeur de la variable
DYNAMIC_RESULTS. Cela permet d’imiter le comportement de Teradata, qui ne renvoie que les k premiers curseurs ouverts, même si d’autres sont ouverts dans la procédure stockée.La combinaison de
DECLARE CURSOR WITH RETURNavecPREPAREse traduit par :
The output parameters are supported through the return statement of the procedure. An array is created containing the value of each output parameter and the
_OUTQUERIEScollection. ThePROCRESULTSfunction deals with the creation and filling of this array. See PROCRESULTS() helper for more information.
Exemple d’obtention de données à partir d’une procédure stockée¶
Si les paramètres de sortie et les IDs de requête sont renvoyés par une procédure, une deuxième procédure peut appeler la première pour obtenir ces valeurs, comme indiqué ci-dessous :
Teradata
Procédure d’appel¶
Snowflake
Procédure d’appel JavaScript¶
La valeur de l’argument
P1deProcedure1est renvoyée et stockée dans la variableX.Les
_OUTQUERIESrenvoyés parProcedure1sont stockés dans la variableresultset.
Note
Ce comportement s’applique également aux paramètres de INOUT.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
SSC-EWI-0022 : Un ou plusieurs identificateurs dans cette instruction ont été considérés comme des paramètres par défaut.
SSC-EWI-0023 : Examen des performances - Une boucle contient une instruction d’insertion, de suppression ou de mise à jour.
SSC-EWI-0026 : La variable peut nécessiter une conversion en date, heure ou horodatage.
SSC-FDM-TD0001: Ce message s’affiche lorsque SnowConvert AI trouve un type de données BLOB.