SnowConvert AI – Oracle – PACKAGES¶
Beschreibung¶
Verwenden Sie die Anweisung
CREATEPACKAGE, um die Spezifikation für ein gespeichertes Paket zu erstellen. Dabei handelt es sich um eine gekapselte Sammlung verwandter Prozeduren, Funktionen und anderer Programmobjekte, die gemeinsam in der Datenbank gespeichert werden. Die Paketspezifikation deklariert diese Objekte. Der Paket-Body, der später angegeben wird, definiert diese Objekte. (Oracle PL/SQL Language Reference CREATE PACKAGE Statement)
Snowflake hat kein Äquivalent für Oracle-Pakete. Um die Struktur beizubehalten, werden die Pakete in ein Schema umgewandelt und alle Elemente werden darin definiert. Außerdem werden das Paket und seine Elemente umbenannt, um den ursprünglichen Schemanamen beizubehalten.
BODY¶
Beschreibung¶
Die Kopfzeile des PACKAGE BODY wird entfernt und jede Prozedur- oder Funktionsdefinition wird in eine eigenständige Funktion oder Prozedur umgewandelt.
CREATE PACKAGE SYNTAX¶
Beispielhafte Quellcode-Muster¶
Bemerkung
Die folgenden Abfragen wurden mit der deaktivierten Option PackagesAsSchema umgewandelt.
Oracle¶
Snowflake¶
Snowflake¶
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Konstanten¶
Übersetzungsspezifikation für Paketkonstanten
Beschreibung¶
PACKAGE CONSTANTS kann entweder in der Paketdeklaration oder im PACKAGE BODY deklariert werden. Wenn eine Paketkonstante in einer Prozedur verwendet wird, wird eine neue Variable mit demselben Namen und Wert wie die Konstante deklariert, so dass der resultierende Code der Eingabe ziemlich ähnlich ist.
Syntax der Konstantendeklaration von Oracle¶
Beispielhafte Quellcode-Muster¶
Beispiel für Hilfscode¶
Oracle¶
Snowflake¶
Oracle¶
Ergebnis¶
ID |
|---|
9999 |
Snowflake¶
Ergebnis¶
ID |
|---|
9999 |
Bemerkung
Beachten Sie, dass die Definition vonPROCEDURE entfernt wird, da sie in Snowflake nicht erforderlich ist.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
SSC-FDM-0006: Spalte vom Typ ‚number‘ verhält sich in Snowflake möglicherweise nicht ähnlich.
DECLARATION¶
Beschreibung¶
Die Deklaration wird in ein Schema umgewandelt, so dass jedes innere Element innerhalb dieses Schemas deklariert wird. Alle Elemente des Pakets sind kommentiert, mit Ausnahme der VARIABLES, die eine eigene Transformation haben.
CREATE PACKAGE SYNTAX¶
Beispielhafte Quellcode-Muster¶
Bemerkung
Die folgenden Abfragen wurden mit der deaktivierten Option PackagesAsSchema umgewandelt.
Oracle¶
Snowflake¶
Bemerkung
Beachten Sie, dass die Definitionen FUNCTION und PROCEDURE entfernt werden, da sie in Snowflake nicht erforderlich sind.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
VARIABLES¶
Übersetzungsspezifikation für Paketvariablen
Beschreibung¶
PACKAGE VARIABLES kann entweder in der Paketdeklaration oder im PACKAGE BODY deklariert werden. Aufgrund ihres Verhaltens werden diese Variablen in Snowflake-Sitzungsvariablen umgewandelt, so dass jede Verwendung oder Zuweisung in ihre Entsprechung in Snowflake übersetzt wird.
Syntax der Variablendeklaration von Oracle¶
Beispielhafte Quellcode-Muster¶
Beispiel für Hilfscode¶
Oracle¶
Snowflake¶
Variablendeklaration¶
Oracle¶
Snowflake Scripting¶
Verwendung von Variablen¶
Die Verwendung von Paketvariablen wird in die Snowflake GETVARIABLE-Funktion umgewandelt, die auf den aktuellen Wert einer Sitzungsvariablen zugreift. Eine explizite Umwandlung wird zum ursprünglichen Variablendatentyp hinzugefügt, um die Funktionsäquivalenz bei den Operationen, bei denen diese Variablen verwendet werden, zu erhalten.
Oracle¶
Ergebnis¶
ID |
|---|
100 |
Snowflake¶
Ergebnis¶
ID |
|---|
100 |
Bemerkung
Beachten Sie, dass die PROCEDURE-Definition im Paket entfernt wurde, da sie von Snowflake nicht benötigt wird.
Reguläre Variablenzuweisung¶
Wenn eine Paketvariable mit dem :=-Operator zugewiesen wird, wird die Zuweisung durch eine SnowConvert AI UDF namens UPDATE_PACKAGE_VARIABLE_STATE ersetzt, die eine Abstraktion der Snowflake-Funktion SETVARIABLE ist.
Oracle
Oracle¶
Ergebnis¶
ID |
|---|
200 |
Snowflake¶
Ergebnis¶
ID |
|---|
200 |
Bemerkung
Beachten Sie, dass die PROCEDURE-Definition im Paket entfernt wurde, da sie von Snowflake nicht benötigt wird.
Variablenzuweisung als Ausgabeargument¶
Wenn eine Paketvariable als Ausgabeargument verwendet wird, wird innerhalb der Prozedur eine neue Variable deklariert. Diese Variable ruft den Wert des Ausgabearguments der Prozedur ab. Die Variable wird dann verwendet, um die Sitzungsvariable zu aktualisieren, die mit UPDATE_PACKAGE_VARIABLE_STATE auf die Paketvariable verweist, wie oben erwähnt.
Oracle¶
Ergebnis¶
ID |
|---|
1000 |
Snowflake¶
Ergebnis¶
ID |
|---|
1000 |
Bemerkung
Beachten Sie, dass die PROCEDURE-Definition im Paket entfernt wurde, da sie von Snowflake nicht benötigt wird.
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
SSC-FDM-0006: Spalte vom Typ ‚number‘ verhält sich in Snowflake möglicherweise nicht ähnlich.