SnowConvert AI – Teradata – SQL in Snowflake Scripting (Prozeduren)¶
ABORT und ROLLBACK¶
Übersetzungsreferenz zur Konvertierung der ABORT- und ROLLBACK-Anweisung von Teradata in Snowflake Scripting
Beschreibung ¶
Die ABORT und ROLLBACK-Anweisungen von Teradata werden in Snowflake Scripting durch eine ROLLBACK-Anweisung ersetzt.
Hier finden Sie mehr Informationen über Teradata ABORT und ROLLBACK.
Beispielhafte Quellcode-Muster ¶
Grundlegendes ABORT und ROLLBACK¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bedingtes ABORT und ROLLBACK¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
ABORT und ROLLBACK mit Tabellenreferenzen und FROM-Klausel¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
ABORT und ROLLBACK mit Tabellenreferenzen ohne FROM-Klausel¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abort und Rollback¶
Bekannte Probleme¶
1. Custom Error Message¶
Auch wenn ROLLBACK und ABORT unterstützt werden, ist es nicht möglich, sie mit einer benutzerdefinierten Fehlermeldung zu verwenden.
Teradata ¶
Fehlermeldung¶
Snowflake Scripting ¶
Fehlermeldung¶
2. Aggregate function¶
Die Verwendung der Aggregatfunktion in Kombination mit ABORT/ROLLBACK wird nicht unterstützt
Teradata ¶
Aggregationsfunktion¶
Snowflake Scripting ¶
Aggregationsfunktion¶
ACTIVITY_COUNT¶
Übersetzungsspezifikation für die ACTIVITY_COUNT-Statusvariable
Beschreibung¶
The ACTIVITY_COUNT status variable returns the number of rows affected by an SQL DML statement in an embedded SQL or stored procedure application. For more information, see the Teradata ACTIVITY_COUNT documentation.
Es gibt keine direkte Entsprechung in Snowflake. Es gibt jedoch eine Umgehungsmöglichkeit, um die Verhaltensweise von ACTIVITY_COUNTzu emulieren. Verwenden Sie einfach die folgende Abfrage:
Diese Abfrage ruft die erste Spalte des Resultset der zuletzt ausgeführten Abfrage in der aktuellen Sitzung ab und gibt sie zurück. Außerdem kann $1 je nach Art der Abfrage durch „number of rows inserted“, „number of rows updated“ oder „number of rows deleted“ ersetzt werden.
Wie erwartet verhält sich diese Übersetzung nur dann wie ihr Teradata-Pendant, wenn vor dem Aufruf von LAST_QUERY_ID keine anderen Abfragen außer der SQL DML-Anweisung ausgeführt werden.
Beispielhafte Quellcode-Muster¶
Datenkonfiguration¶
Teradata¶
Abfrage¶
Snowflake¶
Abfrage¶
Unterstützte Verwendung¶
Teradata¶
Abfrage¶
Ergebnis¶
Snowflake¶
Abfrage¶
Ergebnis¶
Bekannte Probleme¶
If
ACTIVITY_COUNTis called twice or more times before executing a DML statement, the transformation might not return the expected values. See SSC-FDM-TD0033.If
ACTIVITY_COUNTis called after a non DML statement was executed, the transformation will not return the expected values. See SSC-FDM-TD0033.ACTIVITY_COUNTrequires manual fixing when inside aSELECT/SET INTO VARIABLEstatement and was not able to be identified as a column name. See SSC-EWI-TD0003.
Zugehörige EWIs¶
SSC-FDM-TD0033: ‚ACTIVITY_COUNT‘ TRANSFORMATION MIGHT REQUIRE MANUAL ADJUSTMENTS.
BEGIN END¶
Übersetzungsreferenz zur Konvertierung der BEGIN END-Klausel von Teradata in Snowflake Scripting
BEGIN END TRANSACTION¶
Beschreibung¶
Definiert den Beginn einer expliziten logischen Transaktion im Teradata-Sitzungsmodus.
For more information, see the Teradata BEGIN END Transaction documentation.
Beispielhaftes Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
BEGIN END REQUEST¶
Beschreibung¶
Begrenzt eine SQL-Anfrage mit mehreren Anfragen
For more information, see the Teradata BEGIN END Request documentation.
Beispielhaftes Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
BEGIN END COMPOUND¶
Beschreibung¶
Begrenzt eine COMPOUND-Anweisung in einer gespeicherten Prozedur.
For more information, see the Teradata BEGIN END Compound documentation.
Beispielhaftes Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
1. Labels not supported in outer BEGIN END blocks¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Zugehörige EWIs¶
[SSC-EWI-0058](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0058): Die Funktionalität wird derzeit nicht von Snowflake Scripting unterstützt.
CASE¶
Übersetzungsreferenz zur Konvertierung der CASE-Anweisung von Teradata in Snowflake Scripting
Beschreibung ¶
Bietet die bedingte Ausführung von Anweisungen auf der Grundlage der Auswertung des angegebenen bedingten Ausdrucks oder der Gleichheit zweier Operanden.
Die CASE-Anweisung unterscheidet sich von dem SQL CASE-Ausdruck_,\_ der das Ergebnis eines Ausdrucks zurückgibt.
For more information, see the Teradata CASE documentation.
Beispielhafte Quellcode-Muster ¶
Sample auxiliary table¶
Teradata¶
Snowflake¶
Simple Case¶
Teradata¶
Abfrage¶
Ergebnis¶
Snowflake Scripting¶
Abfrage¶
Ergebnis¶
Searched Case¶
Teradata¶
Abfrage¶
Ergebnis¶
Snowflake Scripting¶
Abfrage¶
Ergebnis¶
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
CURSOR¶
Übersetzungsreferenz zur Konvertierung der CURSOR-Anweisung von Teradata in Snowflake Scripting
Beschreibung ¶
A cursor is a data structure that is used by stored procedures at runtime to point to a resultset returned by an SQL query. For more information, see the Teradata SQL Cursor Control and DML Statements documentation.
Beispielhafte Quellcode-Muster ¶
Datenkonfiguration¶
Der folgende Code ist erforderlich, um die Beispielmuster in diesem Abschnitt auszuführen.
Teradata¶
Snowflake¶
Grundlegender Cursor¶
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnis¶
Einzelner rückgabefähiger Cursor¶
Die folgende Prozedur soll ein Resultset zurückgeben, da sie in der Kopfzeile die Eigenschaft DYNAMIC RESULT SETS 1 hat, der Cursor die Eigenschaft WITH RETURN hat und im Body geöffnet wird.
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnis¶
Mehrere rückgabefähige Cursors¶
Die folgende Prozedur soll mehrere Ergebnisse zurückgeben, wenn die Eigenschaft DYNAMIC RESULT SETS in der Kopfzeile größer als 1 ist, die Prozedur mehrere Cursors mit der Eigenschaft WITH RETURN hat und diese gleichen Cursors im Body geöffnet werden.
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnisse¶
Cursors mit Bindungsvariablen¶
Der folgende Cursor verwendet Bindungsvariablen als Where-Bedingung, um die Abfrage durchzuführen.
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnis¶
Cursor-FOR-Schleife¶
Es handelt sich um eine Art von Schleife, die einen Cursor verwendet, um Zeilen aus einer SELECT-Anweisung zu holen und dann eine Verarbeitung für jede Zeile durchführt.
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnis¶
Cursorabruf innerhalb einer Schleife¶
So lassen sich Zeilen aus einem Resultset nacheinander abrufen und jede Zeile verarbeiten.
Teradata¶
Cursor-Code¶
Ergebnis¶
Snowflake Scripting¶
Cursor-Code¶
Ergebnis¶
Bekannte Probleme¶
Die folgenden Parameter sind in Snowflake Scripting nicht anwendbar.
1. Declare¶
[ SCROLL/NO SCROLL ] Snowflake Scripting unterstützt nur FETCH NEXT.
[ READ-ONLY ] Dies ist die Standardeinstellung in Snowflake Scripting.
[ UPDATE ].
2. Fetch¶
[ NEXT ] Dies ist das Standardverhalten in Snowflake Scripting.
[ FIRST ].
Zugehörige EWIs¶
[SSC-FDM-0020](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0020): Mehrere Resultsets werden in temporären Tabellen zurückgegeben.
SSC-PRF-0003: Das Abrufen innerhalb einer Schleife wird als komplexes Muster betrachtet; dies kann die Leistung von Snowflake beeinträchtigen.
SSC-PRF-0004: Diese Anweisung hat Verwendungen für Cursor-FOR-Schleife.
DECLARE CONTINUE HANDLER¶
Übersetzungsreferenz zur Konvertierung des DECLARE CONTINUE-Handlers von Teradata in Snowflake Scripting
Beschreibung ¶
Behandeln Sie Abschlussbedingungen und Ausnahmebedingungen, die nicht schwerwiegend genug sind, um den Kontrollfluss zu beeinträchtigen.
For more information, see the Teradata DECLARE CONTINUE handler documentation.
Beispielhafte Quellcode-Muster ¶
DECLARE CONTINUE HANDLER¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
DECLARE CONTINUE HANDLER FOR SQLSTATE¶
Die Unterstützung der Deklaration von Continue-Handlern für einige SQLSTATE Werte wird derzeit von Snowflake Scripting nicht unterstützt.
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Zugehörige EWIs¶
[SSC-EWI-TD0004](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/teradataEWI. md#ssc-ewi-td0004): Nicht unterstützte SQL-Ausnahme beim Continue-Handler.
DECLARE CONDITION HANDLER¶
Übersetzungsreferenz zur Konvertierung des DECLARE CONDITION-Handlers von Teradata in Snowflake Scripting
Beschreibung ¶
Weisen Sie einem SQLSTATE-Code einen Namen zu, oder deklarieren Sie eine benutzerdefinierte Bedingung.
For more information, see the Teradata DECLARE CONDITION handler documentation.
Beispielhafte Quellcode-Muster ¶
DECLARE CONDITION¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
DECLARE CONDITION FOR SQLSTATE¶
Die Unterstützung der Angabe von Bedingungen für SQLSTATE-Werte wird derzeit von Snowflake Scripting nicht unterstützt.
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Zugehörige EWIs¶
[SSC-EWI-0058:](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0058) Die Funktionalität wird derzeit von Snowflake Scripting nicht unterstützt.
DECLARE¶
Übersetzungsreferenz zur Konvertierung der DECLARE-Anweisung von Teradata in Snowflake Scripting
Beschreibung ¶
Deklariert eine oder mehrere lokale Variablen.
For more information, see the Teradata DECLARE documentation.
Beispielhafte Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
DML- und DDL-Objekte¶
Beschreibung ¶
DML- und DDL-Objekte werden auf die gleiche Weise übersetzt, unabhängig davon, ob sie sich in gespeicherten Prozeduren befinden oder nicht. Weitere Informationen finden Sie unter den folgenden Links.
Übersetzungreferenzen¶
data-types.md: Vergleichen von Teradata-Datentypen und ihren Äquivalenten in Snowflake.
ddl: Untersuchen der Übersetzung der Datendefinitionssprache (Data Definition Language).
dml: Untersuchen der Übersetzung der Datenbearbeitungssprache (Data Manipulation Language).
built-in-functions: Vergleichen von Funktionen, die in der Laufzeitumgebung beider Sprachen enthalten sind.
EXCEPTION HANDLERS¶
Übersetzungsreferenz zur Konvertierung der EXCEPTION HANDLERS-Klausel von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die Einzel- und Mehrfachausnahme-Handler von Teradata werden durch die entsprechenden Handler in Snowflake Scripting ersetzt.
For more information, see the Teradata EXCEPTION HANDLERS documentation.
Beispielhafte Quellcode-Muster ¶
SQLEXCEPTION HANDLER¶
Teradata ¶
Einzelner Handler¶
Mehrere Handler¶
Snowflake Scripting ¶
Einzelner Handler¶
Mehrere Handler¶
Benutzerdefinierte Handler¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
CONTINUE-Handler¶
Gefahr
Ein CONTINUE-Handler in Teradata ermöglicht es, die Ausführung nach der Ausführung einer fehlerhaften Anweisung fortzusetzen. Dies wird von den Ausnahmeblöcken in Snowflake Scripting nicht unterstützt. Condition Handler Teradata-Referenzdokumentation
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Andere nicht unterstützte Handler¶
Gefahr
Handler für SQLSTATE, SQLWARNING und NOT FOUND werden nicht unterstützt
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Zugehörige EWIs¶
[SSC-EWI-0058](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0058): Die Funktionalität wird derzeit nicht von Snowflake Scripting unterstützt.
[SSC-EWI-TD0004](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/teradataEWI. md#ssc-ewi-td0004): Nicht unterstützte SQL-Ausnahme beim Continue-Handler.
EXECUTE/EXEC¶
Übersetzungsreferenz zur Konvertierung der EXECUTE- oder EXEC-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die Teradata-Anweisung EXECUTE erlaubt die Ausführung von vorbereiteten dynamischen SQL oder Makros, Exec hingegen erlaubt nur Makros.
Weitere Informationen zu Teradata EXECUTE/EXEC, finden Sie unter Makro-Formular und Dynamisches SQL Formular
Beispielhafte Quellcode-Muster ¶
Datenkonfiguration¶
Der folgende Code ist erforderlich, um die Beispielmuster in diesem Abschnitt auszuführen.
Teradata¶
Snowflake¶
Vorbereitete Anweisung ausführen¶
Teradata¶
Execute¶
Snowflake Scripting ¶
Execute¶
MAKRO-Anweisung ausführen¶
Teradata¶
Execute¶
Ergebnis¶
Snowflake Scripting ¶
Execute¶
Zugehörige EWIs¶
[SSC-EWI-0030:](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0030) Die nachstehende Anweisung enthält dynamische SQL-Verwendungen.
[SSC-EWI-0073](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0073): Überprüfung der Funktionsäquivalenz ausstehend.
EXECUTE IMMEDIATE¶
Übersetzungsreferenz zur Konvertierung der EXECUTE IMMENDIATE-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die Teradata-Anweisung EXECUTE IMMEDIATE ermöglicht die Ausführung von dynamischem SQL, das in Variablen oder Zeichenfolgenliteralen enthalten sind.
For more information, see the Teradata EXECUTE IMMEDIATE documentation.
Beispielhafte Quellcode-Muster ¶
Datenkonfiguration¶
Der folgende Code ist erforderlich, um die Beispielmuster in diesem Abschnitt auszuführen.
Teradata¶
Snowflake¶
Beispiel ausführen ¶
Teradata ¶
Abfrage¶
Ergebnis¶
Snowflake Scripting ¶
Abfrage¶
Ergebnis¶
Ergebnis¶
Zugehörige EWIs¶
[SSC-EWI-0030](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0030): Die nachstehende Anweisung enthält Verwendungen von dynamischen SQL.
FUNCTION OPTIONS OR DATA ACCESS¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Bemerkung
Nicht relevante Anweisung.
Warnung
Beachten Sie, dass diese Anweisung aus der Migration entfernt wurde, da sie eine nicht relevante Syntax darstellt. Das bedeutet, dass sie in Snowflake nicht erforderlich ist.
Beschreibung¶
Funktionsoptionen oder Datenzugriffsoptionen sind Anweisungen, die in Funktionen im Deklarationsteil verwendet werden, um bestimmte Eigenschaften festzulegen. Diese können sein:
CONTAINS SQLSQL SECURITY DEFINERCOLLATION INVOKERSPECIFIC FUNCTION_NAME
Beispielhafte Quellcode-Muster¶
Funktionsoptionen¶
Beachten Sie, dass in diesem Beispiel die Funktionsoptionen entfernt wurden, da sie in Snowflake nicht erforderlich sind.
Teradata¶
Snowflake¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
GET DIAGNOSTICS EXCEPTION¶
Übersetzungsreferenz zur Konvertierung der GET DIAGNOSTICS EXCEPTION-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
GET DIAGNOSTICS ruft Informationen über Erfolgs-, Ausnahme- oder Abschlussbedingungen aus dem Diagnosebereich ab.
For more information, see the Teradata GET DIAGNOSTICS documentation.
Beispielhafte Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Bekannte Probleme¶
CLASS_ORIGIN, CONDITION_NUMBER¶
Gefahr
Die Verwendung von GET DIAGNOSTICS für CLASS_ORIGIN, CONDITION_NUMBER wird nicht unterstützt
Teradata ¶
Abfrage¶
Snowflake Scripting ¶
Abfrage¶
Zugehörige EWIs¶
[SSC-EWI-0058](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0058): Die Funktionalität wird derzeit nicht von Snowflake Scripting unterstützt.
IF¶
Übersetzungsreferenz zur Konvertierung der IF-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Bietet eine bedingte Ausführung basierend auf dem Wahrheitswert einer Bedingung.
For more information, see the Teradata IF documentation.
Beispielhafte Quellcode-Muster ¶
Sample auxiliary table¶
Teradata¶
Snowflake¶
Mögliche IF Variationen¶
Teradata ¶
Code 1¶
Code 2¶
Code 3¶
Code 4¶
Ergebnis 1¶
Ergebnis 2¶
Ergebnis 3¶
Ergebnis 4¶
Snowflake Scripting¶
Abfrage 1¶
Abfrage 2¶
Abfrage 3¶
Abfrage 4¶
Ergebnis 1¶
Ergebnis 2¶
Ergebnis 3¶
Ergebnis 4¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOCKING FOR ACCESS¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Bemerkung
Nicht relevante Anweisung.
Warnung
Beachten Sie, dass diese Anweisung aus der Migration entfernt wurde, da sie eine nicht relevante Syntax darstellt. Das bedeutet, dass sie in Snowflake nicht erforderlich ist.
Beschreibung¶
Die Funktionalität des Sperrens einer Zeile in Teradata hängt mit dem Zugriff und den Berechtigungen zusammen. Lesen Sie die folgende Dokumentation, um mehr zu erfahren.
Beispielhafte Quellcode-Muster¶
Zeile sperren¶
Beachten Sie, dass in diesem Beispiel die LOCKING ROW FOR ACCESS gelöscht wurde. Das liegt daran, dass Snowflake Zugriffe mit Rollen und Berechtigungen behandelt. Die Anweisung ist nicht erforderlich.
Teradata¶
Snowflake¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
[SSC-FDM-0001](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0001): Ansichten, die alle Spalten aus einer einzigen Tabelle auswählen, sind in Snowflake nicht erforderlich.
[SSC-FDM-0007](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0007): Element mit fehlenden Abhängigkeiten.
LOOP¶
Übersetzungsreferenz zur Konvertierung der LOOP-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die LOOP-Anweisung von Teradata wird in die Syntax von Snowflake Scripting LOOP übersetzt.
For more information, see the Teradata LOOP documentation.
Beispielhafte Quellcode-Muster ¶
Teradata ¶
Schleife¶
Ergebnis¶
Snowflake Scripting ¶
Schleife¶
Ergebnis¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
OUTPUT PARAMETERS¶
In diesem Artikel geht es um die aktuelle Transformation der Ausgabeparameter und wie deren Funktionalität emuliert wird.
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Ein Ausgabeparameter ist ein Parameter, dessen Wert aus der gespeicherten Prozedur zurück an die aufrufende Anweisung übergeben wird. Snowflake bietet eine direkte Unterstützung von Ausgabeparametern.
Beispielhafte Quellcode-Muster¶
Einzelner Out-Parameter¶
Teradata¶
Snowflake¶
Mehrere Out-Parameter¶
Teradata¶
Snowflake¶
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
PREPARE¶
Übersetzungsspezifikation zur Konvertierung der PREPARE-Anweisung von Teradata in Snowflake Scripting In diesem Abschnitt wird das PREPARE-Muster in Bezug auf eine Cursorlogik näher betrachtet.
Beschreibung ¶
Bereitet die dynamische Anweisung DECLARE CURSOR vor, um die Erstellung verschiedener Resultsets zu ermöglichen. Erlaubt dynamische Parametermarker.
Weitere Informationen finden Sie in der folgenden Dokumentation.
Teradata syntax:
Wobei:
statement_name ist derselbe Bezeichner wie
statement_namein einer DECLARE CURSOR -Anweisung.statement_string ist der SQL Text, der dynamisch ausgeführt werden soll.
statement_string_variable ist der Name einer lokalen SQL-Variablen oder eines SQL-Parameters oder einer Zeichenfolgen-Variablen, die die SQL-Textzeichenfolge enthält, die dynamisch ausgeführt werden soll.
Bemerkung
Wichtige Informationen
Bei dieser Transformation werden die Cursors umbenannt, da sie nicht dynamisch aktualisiert werden können.
Beispielhafte Quellcode-Muster ¶
Dateneinstellung für Beispiele¶
Für dieses Beispiel verwenden Sie bitte die folgenden ergänzenden Abfragen für den Fall, dass Sie jeden Fall ausführen möchten.
Teradata¶
Snowflake¶
Einfaches Szenario¶
Dieses Beispiel zeigt die Funktionalität für den Fall, dass ein einzelner Cursor nur einmal verwendet wird.
Teradata ¶
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Einfaches Szenario mit RETURN ONLY¶
Teradata ¶
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Wiederverwendeter Cursor-Case¶
Teradata ¶
Abfrage¶
Ausgabe¶
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Geänderte Abfrage vor der Verwendung¶
Teradata ¶
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Einfacher Cursor kombiniert mit keinem PREPARE-Muster¶
Teradata ¶
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Col1 |
|---|
1 |
Vorbereiten kombiniert mit verschachtelten Cursors¶
Teradata ¶
Abfrage¶
Ausgabe¶
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Variablenmarkierungen ohne Neuordnung der Variablen¶
Warnung
Dieser Fall wird noch nicht unterstützt.
Teradata ¶
Abfrage¶
Ausgabe¶
Col1 |
|---|
ok |
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Col1 |
|---|
ok |
Variablenmarkierungen mit Neuordnung der Variablen¶
Warnung
Dieser Fall wird noch nicht unterstützt.
Bemerkung
Wenn es Variablen gibt, die zwischen der Anweisung PREPARE und dem Cursor OPEN in Teradata einen anderen Wert haben, müssen Sie diese Variable in Snowflake vor EXECUTE IMMEDIATE verschieben. Die Informationen zu den dynamischen Variablen werden also in dem Moment aktualisiert, in dem die dynamische Abfrage ausgeführt wird.
Teradata ¶
Abfrage¶
Ausgabe¶
Snowflake Scripting ¶
Bemerkung
Verwendungen für Cursors müssen umbenannt und neu deklariert werden.
Abfrage¶
Ausgabe¶
Anonyme Blöcke - Deklaration außerhalb des Blocks¶
Warnung
Dieser Fall wird noch nicht unterstützt.
Teradata ¶
Abfrage¶
Ausgabe¶
Abfrage¶
Ausgabe¶
Bekannte Probleme¶
Überprüfen Sie sorgfältig verschachtelte Cursor und Konditionale, wenn dies der Fall ist.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
REPEAT¶
Übersetzungsreferenz zur Konvertierung der REPEAT-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die REPEAT-Anweisung von Teradata wird in die Syntax von Snowflake Scripting REPEAT übersetzt.
For more information, see the Teradata REPEAT documentation.
Beispielhafte Quellcode-Muster ¶
Teradata ¶
Repeat¶
Ergebnis¶
Snowflake Scripting ¶
Repeat¶
Ergebnis¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SET¶
Übersetzungsreferenz zur Konvertierung der SET-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Weist einer lokalen Variablen oder einem Parameter in einer gespeicherten Prozedur einen Wert zu.
For more information, see the Teradata SET documentation.
Beispielhafte Quellcode-Muster ¶
Teradata ¶
Abfrage¶
Ergebnis¶
Snowflake Scripting¶
Abfrage¶
Ergebnis¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SYSTEM_DEFINED¶
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Bemerkung
Nicht relevante Anweisung.
Warnung
Beachten Sie, dass diese Anweisung aus der Migration entfernt wurde, da sie eine nicht relevante Syntax darstellt. Das bedeutet, dass sie in Snowflake nicht erforderlich ist.
Beschreibung¶
Eigenschaft in Teradata, die in Fällen wie JOIN INDEX nach einer CREATE-Anweisung stehen kann.
Beispielhafte Quellcode-Muster¶
Beachten Sie, dass SYSTEM_DEFINED aus dem Quellcode entfernt wurde, da es sich um eine nicht relevante Syntax in Snowflake handelt.
Teradata¶
Snowflake¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
[SSC-FDM-0007](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0007): Element mit fehlenden Abhängigkeiten.
[SSC-FDM-TD0025](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/teradataFDM. md#ssc-fdm-td0025): Teradata Database Temporal Table wird in Snowflake nicht unterstützt.
[SSC-FDM-0031](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0031): Erforderliche Parameter der dynamischen Tabelle standardmäßig eingestellt
WHILE¶
Übersetzungsreferenz zur Konvertierung der WHILE-Anweisung von Teradata in Snowflake Scripting
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung ¶
Die WHILE-Anweisung von Teradata wird in die Syntax von Snowflake ScriptingWHILE übersetzt.
For more information, see the Teradata WHILE documentation.
Beispielhafte Quellcode-Muster¶
Teradata¶
While¶
Ergebnis¶
Snowflake Scripting ¶
While¶
Ergebnis¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.