SnowConvert AI - Oracle - PACKAGES¶
Description¶
Utilisez l’instruction
CREATEPACKAGEpour créer la spécification d’un paquet stocké, qui est une collection encapsulée de procédures stockées, de fonctions et d’autres objets de programme stockés ensemble dans la base de données. La spécification du paquet déclare ces objets. Le corps du paquet, spécifié ultérieurement, définit ces objets. (Référence linguistique Oracle PL/SQL Instruction CREATE PACKAGE)
Snowflake n’a pas d’équivalent pour les paquets Oracle. Par conséquent, afin de maintenir leur structure, les paquets sont transformés en un schéma dans lequel tous les éléments des paquets sont définis. En outre, les paquets et leurs éléments sont renommés pour préserver le nom du schéma original.
BODY¶
Description¶
L’en-tête de PACKAGE BODY est supprimé et chaque définition de procédure ou de fonction est transformée en une fonction ou procédure autonome.
CREATE PACKAGE SYNTAX¶
Modèles d’échantillons de sources¶
Note
Les requêtes suivantes ont été transformées avec l’option PackagesAsSchema désactivée.
Oracle¶
Snowflake¶
Snowflake¶
Problèmes connus¶
Aucun problème n’a été constaté.
Constantes¶
Spécification de traduction pour les constantes de paquet
Description¶
PACKAGE CONSTANTS peut être déclaré soit dans la déclaration du paquet, soit dans PACKAGE BODY. Lorsqu’une constante du paquet est utilisée dans une procédure, une nouvelle variable est déclarée avec le même nom et la même valeur que la constante, de sorte que le code résultant est assez similaire à l’entrée.
Syntaxe de déclaration constante d’Oracle¶
Modèles d’échantillons de sources¶
Échantillon de code auxiliaire¶
Oracle¶
Snowflake¶
Oracle¶
Résultat¶
ID |
|---|
9999 |
Snowflake¶
Résultat¶
ID |
|---|
9999 |
Note
Notez que la définition dePROCEDURE est supprimée car elle n’est pas nécessaire dans Snowflake.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
SSC-FDM-0006: La colonne de type nombre peut ne pas se comporter de la même manière dans Snowflake.
DECLARATION¶
Description¶
La déclaration est convertie en schéma, de sorte que chaque élément interne est déclaré à l’intérieur de ce schéma. Tous les éléments présents dans le paquet sont commentés à l’exception de VARIABLES qui bénéficie d’une transformation adéquate.
CREATE PACKAGE SYNTAX¶
Modèles d’échantillons de sources¶
Note
Les requêtes suivantes ont été transformées avec l’option PackagesAsSchema désactivée.
Oracle¶
Snowflake¶
Note
Notez que les définitions de FUNCTION et PROCEDURE sont supprimées car elles ne sont pas exigées dans Snowflake.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
Pas d’EWIs connexes.
VARIABLES¶
Spécification de traduction pour les variables de paquet
Description¶
PACKAGE VARIABLES peut être déclaré soit dans la déclaration du paquet, soit dans PACKAGE BODY. En raison de leur comportement, ces variables sont converties en variables de session Snowflake, de sorte que chaque utilisation ou affectation est traduite en son équivalent dans Snowflake.
Syntaxe de déclaration des variables Oracle¶
Modèles d’échantillons de sources¶
Échantillon de code auxiliaire¶
Oracle¶
Snowflake¶
Déclaration de variables¶
Oracle¶
Exécution de scripts Snowflake¶
Utilisation des variables¶
L’utilisation des variables de paquet est transformée en fonction Snowflake GETVARIABLE qui accède à la valeur courante d’une variable de session. Une conversion explicite est ajoutée au type de données de la variable d’origine afin de maintenir l’équivalence fonctionnelle dans les opérations où ces variables sont utilisées.
Oracle¶
Résultat¶
ID |
|---|
100 |
Snowflake¶
Résultat¶
ID |
|---|
100 |
Note
Notez que la définition de PROCEDURE dans le paquet est supprimée car elle n’est pas exigée par Snowflake.
Affectation régulière de variables¶
Lorsqu’une variable de paquet est affectée à l’aide de l’opérateur : =, l’affectation est remplacée par une fonction SnowConvert AI UDF appelée UPDATE_PACKAGE_VARIABLE_STATE qui est une abstraction de la fonction [SETVARIABLE] de Snowflake(https://docs.snowflake.com/en/sql-reference/session-variables.html#session-variable-functions).
Oracle
Oracle¶
Résultat¶
ID |
|---|
200 |
Snowflake¶
Résultat¶
ID |
|---|
200 |
Note
Notez que la définition de PROCEDURE dans le paquet est supprimée car elle n’est pas exigée par Snowflake.
Affectation d’une variable en tant qu’argument de sortie¶
Lorsqu’une variable de paquet est utilisée comme argument de sortie, une nouvelle variable est déclarée dans la procédure, cette variable intercepte la valeur de l’argument de sortie de la procédure, puis la variable sera utilisée pour mettre à jour la variable de session qui fait référence à la variable du paquet à l’aide de la fonction UPDATE_PACKAGE_VARIABLE_STATE e ci-dessus.
Oracle¶
Résultat¶
ID |
|---|
1000 |
Snowflake¶
Résultat¶
ID |
|---|
1000 |
Note
Notez que la définition de PROCEDURE dans le paquet est supprimée car elle n’est pas exigée par Snowflake.
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
SSC-FDM-0006: La colonne de type nombre peut ne pas se comporter de la même manière dans Snowflake.