SnowConvert AI - Teradata - BTEQ¶
Références de traduction pour convertir des fichiers BTEQ Teradata en Snowflake SQL
Description¶
Note
Certaines parties du code de sortie sont omises pour des raisons de clarté.
Basic Teradata Query (BTEQ) est un programme général basé sur des commandes qui permet aux utilisateurs d’une station de travail de communiquer avec un ou plusieurs systèmes de bases de données Teradata et de formater des rapports pour l’impression et la sortie écran.
For more information, see the Teradata BTEQ Reference.
Modèles d’échantillons de sources¶
1. Basic BTEQ Example¶
The BTEQ content is relocated within an EXECUTE IMMEDIATE block to transfer the BTEQ script functionality to Snowflake SQL executable code.
Toutes les instructions DML et DDL dans les scripts BTEQ sont pris en charge par SnowConvert AI et traduits correctement en Snowflake SQL. Les commandes qui ne sont pas encore prises en charge, ou qui ne sont pas du tout prises en charge, sont marquées par un message d’avertissement et commentées.
Teradata BTEQ¶
Snowflake SQL¶
2. Bash Variable Placeholders Example¶
SnowConvert AI prend en charge la migration du code BTEQ avec des espaces réservés de variables Bash utilisés pour les scripts Shell, ces espaces seront migrés vers son équivalent SnowSQL et SSC-FDM-TD0003 sera ajouté au code. Veuillez tenir compte des points suivants lors de la migration du code avec ces espaces réservés :
SnowConvert AI ne prend pas en charge la migration des scripts shell ; pour migrer le code BTEQ, veuillez l’isoler dans un fichier BTEQ et le fournir comme entrée pour l’outil.
SnowSQL avec la substitution de variable activée est nécessaire pour exécuter le code migré ; pour plus d’informations sur la façon d’utiliser SnowSQL consultez SSC-FDM-TD0003 and the official documentation for SnowSQL.
Teradata BTEQ¶
Snowflake SQL¶
3. .IF, .GOTO, and .LABEL (Snowflake Scripting)¶
When the BTEQ script target is Snowflake Scripting (SnowScript), SnowConvert AI translates .IF, .GOTO, and .LABEL by modeling jumps as nested procedure calls and early returns inside a single EXECUTE IMMEDIATE $$ … $$ block. Snowflake does not provide BTEQ-style goto/label semantics.
BTEQ construct |
Snowflake Scripting approach |
|---|---|
Script body with labels |
Wrapped in |
|
Section |
|
|
|
|
|
|
Error/status tracking |
|
Note
To produce output in this form, set the Teradata/BTEQ script output to Snowflake Scripting (for example -- Additional Params: -q SnowScript in the samples below). Option names vary by interface; see the SnowConvert AI user guide for your product version.
The following example shows .IF ERRORCODE with .GOTO and .LABEL. Teradata BTEQ often branches on ERRORCODE after DDL and jumps to a labeled cleanup or next step.
Teradata BTEQ¶
Snowflake SQL¶
After each statement that can set SQL state, the generated IF checks STATUS_OBJECT['SQLCODE']. On error, the script calls the target label procedure and returns from the current procedure so later statements in that section do not run. On success, it calls the next section’s procedure to continue the original linear flow.
The next example shows .IF ActivityCount = 0 THEN .GOTO …, expressed in Snowflake Scripting using the last query id and RESULT_SCAN.
Teradata BTEQ¶
Snowflake SQL¶
If activity count is zero, the generated script jumps to the label section with CALL Continue_No_Rejects_00() and RETURN 'PROCESS FINISHED', skipping DROP TABLE DROPTEDTABLE1. Otherwise it runs DROP TABLE, then calls the label procedure to run SELECT A FROM AUDITORIA.
Problèmes connus¶
Certaines commandes BTEQ peuvent ne pas avoir d’équivalents dans Snowflake SQL
Comme BTEQ est un programme basé sur des commandes, il se peut que certaines commandes de votre code d’entrée n’aient pas une équivalence fonctionnelle totale dans Snowflake SQL. Ces cas particuliers sont identifiés, signalés par des avertissements dans le code de sortie et documentés dans les pages suivantes.