SnowConvert AI - Oracle¶
Qu’est-ce que SnowConvert AI pour Oracle ?¶
SnowConvert AI est un logiciel qui comprend Oracle SQL et PL/SQL, et qui effectue les conversions suivantes :
Oracle SQL vers Snowflake SQL
Oracle PL/SQL vers :
JavaScript intégré dans Snowflake SQL
Terminologie SnowConvert AI¶
Avant de nous perdre dans la magie de ces conversions de code, voici quelques termes/définitions afin que vous sachiez de quoi nous parlons lorsque nous commençons à les utiliser dans la documentation :
_ SQL (Structured Query Language) : _ langage standard pour stocker, manipuler et récupérer des données dans la plupart des architectures de bases de données modernes.
PL/SQL : _ Langage de procédure pour SQL. Il a été créé par Oracle et est toujours utilisé par Oracle comme langage de script pour les procédures stockées et les fonctions dans Oracle.
SnowConvert AI** :** le logiciel qui convertit en toute sécurité et automatiquement vos fichiers Oracle vers la plateforme de données Cloud Snowflake.
Règle de conversion ou règle de transformation : règles qui permettent à SnowConvert AI de convertir une partie du code source et de déterminer le code cible attendu.
Analyse : L’analyse est un processus initial effectué par SnowConvert AI pour comprendre le code source et construire une structure de données interne pour traiter les règles de conversion.
Plongeons dans certaines des conversions de code que Snowflake SnowConvert AI peut effectuer.
Conversions de code¶
Oracle SQL vers Snowflake SQL¶
SnowConvert AI pour Oracle prend le code source Oracle en SQL et convertit le langage de définition des données (DDL), le langage de manipulation de données (DML), et les fonctions dans le code source vers le code SQL correspondant dans Snowflake SQL.
Exemple¶
Voici un exemple de conversion d’une instruction CREATE TABLE simple.
Code source :
CREATE TABLE "MyTable"
(
"COL1" NUMBER,
"COL2" NUMBER,
"COL3" NUMBER GENERATED ALWAYS AS (COL1 * COL2) VIRTUAL,
"COL4" LONG,
"COL5" CLOB,
"COL6" ROWID,
"COL7" NVARCHAR2(10),
"COL8" RAW(255),
CONSTRAINT "PK" PRIMARY KEY ("COL1")
);
Code Snowflake SQL migré :
CREATE OR REPLACE TABLE "MyTable"
(
"COL1" NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/,
"COL2" NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/,
"COL3" NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/ AS (COL1 * COL2),
"COL4" VARCHAR,
"COL5" VARCHAR,
"COL6" VARCHAR(18) !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - ROWID DATA TYPE CONVERTED TO VARCHAR ***/!!!,
"COL7" VARCHAR(10),
"COL8" BINARY,
CONSTRAINT "PK" PRIMARY KEY ("COL1")
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;
Dans ce SQL converti, vous remarquerez que nous convertissons de nombreuses choses. Quelques points forts :
Ajout d’un schéma
PUBLICpar défaut pour tous les noms de tables et de vues si l’utilisateur n’en spécifie pasCREATE TABLEàCREATE OR REPLACE TABLEConversions de types de données :
LONGàVARCHARCLOBàVARCHARROWIDàVARCHARNVARCHAR2àVARCHARRAWàBINARY
Attributs du type de données :
GENERATED ALWAYS AS (COL1 * COL2) VIRTUALàAS (COL1 * COL2)
Pour plus d’informations sur les types de données et leur équivalent : Types de données. D’autres exemples sont disponibles dans le reste de la documentation.
Oracle PL/SQL¶
SnowConvert AI prend les procédures stockées et les fonctions d’Oracle (PL/SQL) et les convertit en Exécution de scripts Snowflake ou en JavaScript intégré dans Snowflake SQL. La syntaxe Oracle CREATE PROCEDURE et REPLACE PROCEDURE est remplacée par la syntaxe Snowflake CREATE OR REPLACE PROCEDURE
Exemple¶
Voici un exemple de conversion d’une CREATE PROCEDURE simple dans Oracle qui effectue une insertion dans une table utilisée pour la connexion.
Note
Cet exemple sera utilisé à la fois pour Snowflake Scripting et JavaScript.
CREATE OR REPLACE PROCEDURE SC_DEMO.PROC_LOG
(final_proc VARCHAR2,
final_message VARCHAR2,
logger_type VARCHAR2 DEFAULT 'I')
AS
BEGIN
INSERT INTO SC_DEMO.PROC_LOG_TABLE
VALUES (SC_DEMO.final_logging_seq.NEXTVAL,
sysdate,
SUBSTR(logger_type, 1, 1),
SUBSTR(final_proc, 1, 30),
SUBSTR(final_message, 1, 1024));
COMMIT;
END;
Vers Snowflake Scripting¶
Snowflake Scripting fonctionne comme une extension de Snowflake SQL, il ajoute la prise en charge de la logique procédurale et cela permet de créer des procédures stockées et de répliquer des comportements et des instructions similaires à ceux d’Oracle PL/SQL.
Exemple de migration¶
CREATE OR REPLACE PROCEDURE SC_DEMO.PROC_LOG
(final_proc VARCHAR, final_message VARCHAR,
logger_type VARCHAR DEFAULT 'I')
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
BEGIN
INSERT INTO SC_DEMO.PROC_LOG_TABLE
VALUES (SC_DEMO.final_logging_seq.NEXTVAL, CURRENT_TIMESTAMP(),
SUBSTR(:logger_type, 1, 1),
SUBSTR(:final_proc, 1, 30),
SUBSTR(:final_message, 1, 1024));
--** SSC-FDM-OR0012 - COMMIT REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
COMMIT;
END;
$$;
À JavaScript¶
JavaScript est appelé comme un langage de script, et toutes les instructions internes sont converties en JavaScript. Si vous souhaitez mieux comprendre l’API JavaScript, consultez cette documentation.
Exemple de migration¶
-- Additional Params: -t JavaScript
CREATE OR REPLACE PROCEDURE SC_DEMO.PROC_LOG
(final_proc STRING, final_message STRING,
logger_type STRING DEFAULT 'I')
RETURNS STRING
LANGUAGE JAVASCRIPT
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
// SnowConvert AI Helpers Code section is omitted.
EXEC(`INSERT INTO SC_DEMO.PROC_LOG_TABLE
VALUES (SC_DEMO.final_logging_seq.NEXTVAL, CURRENT_TIMESTAMP(),
SUBSTR(?, 1, 1),
SUBSTR(?, 1, 30),
SUBSTR(?, 1, 1024))`,[LOGGER_TYPE,FINAL_PROC,FINAL_MESSAGE]);
EXEC(`--** SSC-FDM-OR0012 - COMMIT REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
COMMIT;`);
$$;
Dans ce SQL converti, vous remarquerez que nous avons effectué une conversion vers un nouveau langage (JavaScript) intégrée à Snowflake SQL. Il y a plus que quelques points forts, mais il suffit de dire que cette documentation contient tous les éléments essentiels pour comprendre ce type de conversion.
La ligne qui indique // ... Les assistants SnowConvert AI nécessaires sont insérés ici ...... aura effectivement les assistants SnowConvert AI JavaScript. Ils peuvent être longs, ils sont donc retirés de ce premier exemple.
¶
Et c’est tout ! Snowflake SnowConvert AI élimine les difficultés et la vulnérabilité engendrées par le changement de plateformes de données. Apprenez-en plus sur la prise en main de SnowConvert AI pour Oracle sur la page suivante.