SnowConvert AI - Paramètres de conversion Oracle¶
Paramètres de conversion généraux¶
Conversion des objets¶

Transformer les synonymes : Indicateur signalant si les synonymes doivent être transformés ou non. Par défaut, ce paramètre est défini sur true.
Transformer les paquets en nouveaux schémas : Indicateur signalant si les paquets doivent être transformés ou non en nouveaux schémas.
Veuillez vérifier l’appellation de la procédure d’activation et de désactivation de l’indicateur :
Entrée
CREATE OR REPLACE PACKAGE emp_mgmt AS
PROCEDURE remove_emp (employee_id NUMBER );
END emp_mgmt;
CREATE OR REPLACE PACKAGE BODY emp_mgmt AS
PROCEDURE remove_emp (employee_id NUMBER) IS
BEGIN
DELETE FROM employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps := tot_emps - 1;
END;
END emp_mgmt;
Sortie par défaut
CREATE SCHEMA IF NOT EXISTS emp_mgmt
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;
CREATE OR REPLACE PROCEDURE emp_mgmt.remove_emp (employee_id NUMBER(38, 18))
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
BEGIN
DELETE FROM
employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps :=
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0036 - TYPES RESOLUTION ISSUES, ARITHMETIC OPERATION '-' MAY NOT BEHAVE CORRECTLY BETWEEN unknown AND Number ***/!!!
tot_emps - 1;
END;
$$;
Sortie avec paramètre disablePackagesAsSchemas
-- Additional Params: --disablePackagesAsSchemas
CREATE OR REPLACE PROCEDURE EMP_MGMT_REMOVE_EMP (employee_id NUMBER(38, 18))
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
BEGIN
DELETE FROM
employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps :=
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0036 - TYPES RESOLUTION ISSUES, ARITHMETIC OPERATION '-' MAY NOT BEHAVE CORRECTLY BETWEEN unknown AND Number ***/!!!
tot_emps - 1;
END;
$$;
Transformer la date en horodatage :
Indicateur spécifiant si SYSDATE doit être transformé en CURRENT_DATE ou CURRENT_TIMESTAMP. Cela affectera également toutes les colonnes DATE qui seront transformées en TIMESTAMP.
Entrée
CREATE TABLE DATE_TABLE(
DATE_COL DATE
);
SELECT SYSDATE FROM DUAL;
Sortie par défaut
CREATE OR REPLACE TABLE DATE_TABLE (
DATE_COL TIMESTAMP /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;
SELECT
CURRENT_TIMESTAMP()
FROM DUAL;
Sortie avec paramètre disableDateAsTimestamp
-- Additional Params: --disableDateAsTimestamp
CREATE OR REPLACE TABLE DATE_TABLE (
DATE_COL DATE /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
;
SELECT
CURRENT_DATE()
FROM DUAL;
Transformer les JOINS OUTER en syntaxe ANSI : Indicateur signalant si les jointures externes doivent être transformées en syntaxe ANSI uniquement.
Data type mappings¶

SnowConvert defines default mappings for data type conversions. However, you can point to a JSON file to customize specific data type mappings.
Customize data types: You can upload a JSON file to define specific data type transformation rules. This feature allows you to customize how data types are converted during migration.
Supported transformations include:
NUMBERto customNUMBERwith specific precision and scaleNUMBERtoDECFLOATfor preserving exact decimal precision
When you upload a data type customization file:
SnowConvert AI applies your transformation rules during conversion
Numeric literals in
INSERTstatements targeting customized columns are automatically cast to the appropriate typeA TypeMappings Report is generated showing all data type transformations applied
JSON Structure:
The JSON file supports three ways to specify data type changes:
Method |
Scope |
Use Case |
|---|---|---|
|
Global |
Transform all occurrences of a specific data type |
|
Global |
Transform columns matching a name pattern (case-insensitive substring match) |
|
Table-specific |
Transform specific columns in specific tables |
Avertissement
Use column name patterns carefully. The projectTypeChanges.columns rules only apply to columns with NUMBER data types, but they match by name pattern without considering the precision or scale of the original NUMBER type. This means a pattern like "MONTH" will transform all matching NUMBER columns to the target type, regardless of their original precision (e.g., NUMBER(10,0), NUMBER(38,18), or NUMBER without precision). Always review the TypeMappings Report after conversion to verify that the transformations were applied correctly.
Priority order: When multiple rules apply to the same column, SnowConvert AI uses this priority (highest to lowest):
specificTableTypeChanges(most specific)projectTypeChanges.columns(name pattern)projectTypeChanges.types(global type mapping)
Example JSON configuration:
{
"projectTypeChanges": {
"types": {
"NUMBER": "DECFLOAT",
"NUMBER(10, 0)": "NUMBER(18, 0)"
},
"columns": [
{
"nameExpression": "PRICE",
"targetType": "DECFLOAT"
},
{
"nameExpression": ".*_AMOUNT$",
"targetType": "NUMBER(18, 2)"
}
]
},
"specificTableTypeChanges": {
"tables": [
{
"tableName": "EMPLOYEES",
"columns": [
{
"columnName": "SALARY",
"targetType": "NUMBER(15, 2)"
}
]
}
]
}
}
Download template: Copy and save the JSON structure above as your starting point.
Example transformation:
Given the following Oracle input code:
Oracle¶
CREATE TABLE employees (
employee_ID NUMBER,
manager_YEAR NUMBER(10, 0),
manager_MONTH NUMBER(10, 0),
salary NUMBER(12, 2)
);
And a JSON customization file with:
"NUMBER": "NUMBER(11, 2)"inprojectTypeChanges.types"NUMBER(10, 0)": "NUMBER(18, 0)"inprojectTypeChanges.types"MONTH"pattern targetingNUMBER(2,0)inprojectTypeChanges.columnsSALARYcolumn targetingNUMBER(15, 2)inspecificTableTypeChangesfor EMPLOYEES table
The output will be:
Snowflake¶
CREATE OR REPLACE TABLE employees (
employee_ID NUMBER(11, 2),
manager_YEAR NUMBER(18, 0),
manager_MONTH NUMBER(2, 0),
salary NUMBER(15, 2)
);
Column |
Original Type |
Transformed To |
Rule Applied |
|---|---|---|---|
employee_ID |
NUMBER |
NUMBER(11, 2) |
|
manager_YEAR |
NUMBER(10, 0) |
NUMBER(18, 0) |
|
manager_MONTH |
NUMBER(10, 0) |
NUMBER(2, 0) |
|
salary |
NUMBER(12, 2) |
NUMBER(15, 2) |
|
Onglet Résultats généraux¶

Objets de commentaire avec des dépendances manquantes : indique si l’utilisateur souhaite commenter les nœuds dont les dépendances sont manquantes.
Définition de l’encodage des fichiers d’entrée : consultez Paramètres généraux de conversion pour plus de détails.
Note
Pour passer en revue les paramètres qui s’appliquent à l’ensemble des langages pris en charge, consultez l”article suivant.
Paramètres des noms d’objet DB¶

Schéma : La valeur de chaîne spécifie le nom du schéma personnalisé à appliquer. S’il n’est pas spécifié, le nom de la base de données d’origine sera utilisé. Exemple : DB1.myCustomSchema.Table1.
Base de données : La valeur de chaîne spécifie le nom de la base de données personnalisée à appliquer. Exemple : MyCustomDB.PUBLIC.Table1.
Par défaut : Aucun des paramètres ci-dessus ne sera utilisé dans les noms d’objet.
Paramètres de préparation du code¶

Description¶
Préparer mon code : indique si le code d’entrée doit être traité avant l’analyse et la transformation. Cela peut être utile pour améliorer le processus d’analyse. Par défaut, la valeur est FALSE.
Divise les objets de niveau supérieur du code d’entrée en plusieurs fichiers. Les dossiers contenant des dossiers seront organisés comme suit :
Copie
└───A new folder named ''[input_folder_name]_Processed''
└───Top-level object type
└───Schema name
Exemple¶
Entrée¶
├───in
│ DDL_Packages.sql
│ DDL_Procedures.sql
│ DDL_Tables.sql
Sortie¶
Supposons que le nom des fichiers soit le nom des objets de niveau supérieur dans les fichiers d’entrée.
├───in_Processed
├───package
│ └───MY_SCHEMA
│ MY_FIRST_PACKAGE.sql
│ ANOTHER_PACKAGE.sql
│
├───procedure
│ └───MY_SCHEMA
│ A_PROCEDURE.sql
│ ANOTHER_PROCEDURE.sql
│ YET_ANOTHER_PROCEDURE.sql
│
└───table
└───MY_SCHEMA
MY_TABLE.sql
ADDITIONAL_TABLE.sql
THIRD_TABLE.sql
Dans le dossier « nom du schéma », il doit y avoir autant de fichiers que d’objets de premier niveau dans le code d’entrée. De plus, il est possible d’avoir des copies de certains fichiers lorsque plusieurs objets de niveau supérieur de même type ont le même nom. Dans ce cas, les noms de fichiers seront énumérés par ordre croissant.

Exigences ¶
Pour identifier les objets de niveau supérieur, une balise doit être incluse dans un commentaire avant leur déclaration. Nos scripts Extraction génèrent ces balises.
La balise doit respecter le format suivant :
<sc-top_level_object_type>top_level_object_name</sc-top_level_object_type>
Vous pouvez suivre l’exemple suivant :
/* <sc-table> MY_SCHEMA.MY_TABLE</sc-table> */
CREATE TABLE "MY_SCHEMA"."MY_TABLE" (
"MY_COLUMN" VARCHAR2(128)
) ;
Paramètres du taux de conversion¶

Sur cette page, vous pouvez choisir si le pourcentage de code converti avec succès est calculé en utilisant les lignes de code ou en utilisant le nombre total de caractères. Le taux de conversion des caractères est l’option par défaut. Vous pouvez lire la documentation complète sur les taux sur la page de documentation.
Paramètres des langues cibles des procédures stockées¶

Sur cette page, vous pouvez choisir si les procédures stockées sont migrées vers des procédures JavaScript intégrées dans Snow SQL, ou vers Snowflake Scripting. L’option par défaut est Snowflake Scripting.
Réinitialiser les paramètres : l’option Réinitialiser les paramètres apparaît sur chaque page. Si vous avez apporté des modifications, vous pouvez réinitialiser SnowConvert AI à ses paramètres par défaut d’origine.