SnowConvert AI – Teradata – BTEQ¶
Referências de tradução para converter arquivos Teradata BTEQ para o Snowflake SQL
Descrição¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
O Basic Teradata Query (BTEQ) é um programa de uso geral, baseado em comandos, que permite que os usuários de uma estação de trabalho se comuniquem com um ou mais sistemas de banco de dados do Teradata e formatem relatórios para impressão e saída na tela.
For more information, see the Teradata BTEQ Reference.
Amostra de padrões da origem¶
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.
Todas as instruções DML e DDL dentro de scripts BTEQ são compatíveis com SnowConvert AI e traduzidas com sucesso para Snowflake SQL. Os comandos que ainda não têm suporte ou que não têm suporte nenhum estão sendo marcados com uma mensagem de aviso e comentado.
Teradata BTEQ¶
Snowflake SQL¶
2. Bash Variable Placeholders Example¶
O SnowConvert AI oferece suporte à migração de código BTEQ com espaços reservados de variável Bash usado para scripts de shell. Esses espaços reservados serão migrados para seu equivalente SnowSQL e SSC-FDM-TD0003 será adicionado ao código. Considere o seguinte ao migrar o código com esses espaços reservados:
O SnowConvert AI não oferece suporte à migração de scripts de shell, para migrar o código BTEQ. Isole-o em um arquivo BTEQ e forneça-o como entrada para a ferramenta.
O SnowSQL com substituição de variável ativada é necessário para executar o código migrado. Para obter mais informações sobre como usar o SnowSQL verifique SSC-FDM-TD0003 e a documentação oficial para 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 |
|
Nota
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.
Problemas conhecidos¶
Pode haver comandos do BTEQ que não tenham um equivalente no Snowflake SQL
Como o BTEQ é um programa baseado em comandos, pode haver alguns comandos em seu código de entrada que não tenham uma equivalência funcional de cem por cento no Snowflake SQL. Esses casos específicos são identificados, marcados com avisos no código de saída e documentados nas páginas seguintes.