SnowConvert : différences fonctionnelles d’Oracle

SSC-FDM-OR0001

Note

Ce mécanisme de détection des fonctions (FDM) est obsolète et a été conçu pour une version plus ancienne d’Oracle SnowConvert.

Une description

Cette erreur se produit en cas de problème d’écriture du fichier de rapport d’évaluation. Le système ne peut pas enregistrer ou générer correctement les détails de l’évaluation.

Meilleures pratiques

SSC-FDM-OR0002

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0068

Description

Cette erreur se produit lorsque la valeur de START WITH est supérieure à la valeur maximale autorisée par Snowflake. Selon la documentation de Snowflake, la valeur de début de séquence doit être comprise dans l’intervalle d’un entier de 64 bits en complément à deux : de -2^63 à 2^63-1. Cela signifie que les valeurs maximales autorisées sont les suivantes :

  • Chiffres positifs : 9223372036854775807

  • Nombres négatifs : 9223372036854775808

Exemple de code

Code d’entrée :
 CREATE SEQUENCE SEQUENCE1
START WITH 9223372036854775808;
Copy
 CREATE SEQUENCE SEQUENCE2
START WITH -9223372036854775809;
Copy
Code généré :
 CREATE OR REPLACE SEQUENCE SEQUENCE1
--** SSC-FDM-OR0002 - SEQUENCE START VALUE EXCEEDS THE MAX VALUE ALLOWED BY SNOWFLAKE. **
START WITH 9223372036854775808
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';
Copy
 CREATE OR REPLACE SEQUENCE SEQUENCE2
--** SSC-FDM-OR0002 - SEQUENCE START VALUE EXCEEDS THE MAX VALUE ALLOWED BY SNOWFLAKE. **
START WITH -9223372036854775809
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';
Copy

Meilleures pratiques

  • Nous vous recommandons de réinitialiser la séquence et d’adapter son utilisation. NOTE : assurez-vous que la colonne cible a une capacité suffisante pour stocker cette valeur.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0003

Note

Ce FDM a été supprimé. Pour plus d’informations, veuillez consulter la documentation relative à SSC-EWI-OR0038.

Description

La search_clause contrôle la manière dont les lignes sont traitées dans une instruction SELECT en définissant leur ordre. Bien que cette fonction vous permette de personnaliser la manière dont les données sont parcourues et renvoyées dans Oracle, elle n’est pas disponible dans Snowflake.

Dans Oracle et les bases de données similaires, la search_clause permet de contrôler la manière dont les données hiérarchiques sont traitées dans les requêtes récursives ou les Common Table Expressions (CTEs). Lorsque vous spécifiez des colonnes dans la search_clause, vous pouvez choisir de traiter les données en profondeur (en approfondissant chaque branche) ou en largeur (en traitant niveau par niveau), ce qui détermine l’ordre des résultats.

Dans Snowflake, un message search_clause sera généré puis supprimé.

Exemple de code

Code d’entrée :
 WITH dup_hiredate(eid, emp_last, mgr_id, reportLevel, hire_date, job_id) AS 
(SELECT aValue from atable) SEARCH DEPTH FIRST BY hire_date SET order1 SELECT aValue from atable;
Copy
Code généré :
 WITH dup_hiredate(eid, emp_last, mgr_id, reportLevel, hire_date, job_id) AS
(
SELECT aValue from
atable
) /*** SSC-FDM-OR0003 - SEARCH CLAUSE REMOVED FROM THE WITH ELEMENT STATEMENT ***/
SELECT aValue from
atable;
Copy

Recommandation

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0004

Description

Dans Oracle, la clause ORDER BY SIBLINGS est utilisée dans les requêtes hiérarchiques pour maintenir la structure hiérarchique lors du tri des enregistrements frères et sœurs (enregistrements de même niveau). Cette fonction n’est pas disponible dans Snowflake.

Exemple de code

Code d’entrée :
 SELECT LEVEL,
       LPAD(' ', 2 * (LEVEL - 1)) || NAME AS FORMATTED_NAME,
       JOB_TITLE
FROM EMPLOYEES
START WITH MANAGER_ID IS NULL
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID
ORDER SIBLINGS BY NAME;
Copy
Code généré :
 SELECT LEVEL,
       NVL(
       LPAD(' ', 2 * (
                      !!!RESOLVE EWI!!! /*** SSC-EWI-OR0036 - TYPES RESOLUTION ISSUES, ARITHMETIC OPERATION '-' MAY NOT BEHAVE CORRECTLY BETWEEN unknown AND Number ***/!!!LEVEL - 1)) :: STRING, '') || NVL(NAME :: STRING, '') AS FORMATTED_NAME,
       JOB_TITLE
FROM
       EMPLOYEES
START WITH MANAGER_ID IS NULL
CONNECT BY
       PRIOR EMPLOYEE_ID = MANAGER_ID
ORDER BY
       NAME /*** SSC-FDM-OR0004 - SIBLINGS KEYWORD REMOVED FROM ORDER BY CLAUSE BECAUSE SNOWFLAKE DOES NOT SUPPORT IT ***/;
Copy
  • Bien que l’ordre exact fourni par la clause SIBLINGS ne soit pas directement disponible, vous pouvez obtenir des résultats similaires en utilisant ces méthodes :

    • Enveloppez votre requête dans une autre requête et utilisez ORDER BY pour trier les résultats.

    • Tout d’abord, créez une expression de table commune (CTE) contenant votre requête hiérarchique avec CONNECT BY. Ensuite, créez une autre requête qui fait référence à cette CTE et utilise ORDER BY pour trier les frères et sœurs (les lignes situées au même niveau hiérarchique).

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0005

Description

Snowflake ne prend pas en charge les synonymes. Les synonymes éventuels seront convertis en noms d’objets originaux.

Exemple de code

Code d’entrée :
 CREATE TABLE TABLE1
(
    COLUMN1 NUMBER
);

CREATE OR REPLACE SYNONYM B.TABLE1_SYNONYM FOR TABLE1;
SELECT * FROM B.TABLE1_SYNONYM WHERE B.TABLE1_SYNONYM.COLUMN1 = 20;
Copy
Code généré :
 CREATE OR REPLACE TABLE TABLE1
    (
        COLUMN1 NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
    ;

--    --** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **

--    CREATE OR REPLACE SYNONYM B.TABLE1_SYNONYM FOR TABLE1
                                                         ;
SELECT * FROM
    TABLE1
    WHERE
    TABLE1.COLUMN1 = 20;
Copy

Meilleures pratiques

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0006

Description

Cet avertissement apparaît lorsqu’une contrainte de colonne NOT NULL inclut l’un des états de contrainte Oracle dans la définition en ligne de la colonne.


 [ RELY | NORELY | RELY DISABLE | RELY ENABLE | VALIDATE | NOVALIDATE ]
Copy

Étant donné que Snowflake ne prend pas en charge pas ces états, la contrainte en ligne NOT NULL sera supprimée.

Exemple de code

Code d’entrée :
 CREATE TABLE Table1(
  col1 INT NOT NULL RELY
);
Copy
Code généré :
 CREATE OR REPLACE TABLE Table1 (
    col1 INT NOT NULL /*** SSC-FDM-OR0006 - CONSTRAINT STATE RELY REMOVED FROM NOT NULL INLINE CONSTRAINT ***/
  )
  COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
  ;
Copy

Meilleures pratiques

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0007

Description

Snowflake ne prend pas en charge le versionnage des objets. En conséquence, les modificateurs EDITIONABLE ou NONEDITIONABLE sont supprimés lors de la conversion du code et un message d’avertissement est généré.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE EDITIONABLE PROCEDURE FUN1 (n number)is
l_result number;
begin
    DELETE FROM employees;
end;
Copy
Code généré :
 --** SSC-FDM-OR0007 - SNOWFLAKE DOESN'T SUPPORT VERSIONING OF OBJECTS. DEVELOPERS SHOULD CONSIDER ALTERNATE APPROACHES FOR CODE VERSIONING. **
CREATE OR REPLACE PROCEDURE FUN1 (n 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
$$
    DECLARE
        l_result NUMBER(38, 18);
    BEGIN
        DELETE FROM
            employees;
    END;
$$;
Copy

Meilleures pratiques

  • Envisagez différentes méthodes de gestion des versions du code.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0008

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0071.

Description

Le quantificateur « tout » n’est pas pris en charge dans Snowflake SQL. Lors de la conversion de votre code, ce modificateur sera supprimé et vous recevrez un message d’avertissement. Veuillez noter que cette modification peut entraîner des résultats différents de ceux attendus pour votre requête.

Exemple de code

Code d’entrée :
 SELECT location_id  FROM locations 
MINUS ALL 
SELECT location_id  FROM departments;
Copy
Code généré :
 SELECT location_id  FROM
locations
--** SSC-FDM-OR0008 - QUANTIFIER 'ALL' NOT SUPPORTED FOR THIS SET OPERATOR, RESULTS MAY DIFFER **
MINUS
SELECT location_id  FROM
departments;
Copy

Dans Snowflake, les opérateurs INTERSECT et MINUS/EXCEPT suppriment automatiquement les valeurs en double du jeu de résultats.

Meilleures pratiques

  • Explorez les options équivalentes de Snowflake pour remplacer la fonctionnalité du quantificateur « tout ».

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0009

Description

Note

Pour générer des procédures et des macros dans JavaScript, ajoutez soit -t JavaScript soit --PLTargetLanguage JavaScript à votre commande.

Note

Par souci de clarté, nous avons simplifié certaines sections du code de sortie.

Cet avertissement apparaît lorsque les valeurs implicites du curseur SQL sont utilisées. Oracle traite ces valeurs différemment selon le type de requête :

  • Pour les instructions SELECT : la valeur représente le nombre de lignes renvoyées

  • Pour les instructions UPDATE, CREATE, DELETE ou INSERT : la valeur représente le nombre de lignes affectées

Cette différence de comportement est à l’origine de l’affichage de l’avertissement.

Exemple de code

Code d’entrée :
-- Additional Params: -t JavaScript
--Transformation for implicit cursor
CREATE OR REPLACE PROCEDURE SP_SAMPLE AUTHID DEFINER IS
  stmt_no  POSITIVE;
BEGIN
  IF SQL%ROWCOUNT = 0 THEN
   EXIT ;
  END IF;
  IF SQL%ISOPEN THEN
   EXIT ;
  END IF;
  IF SQL%FOUND THEN
   EXIT ;
  END IF;
  IF SQL%NOTFOUND THEN
   EXIT ;
  END IF;
END;
Copy
Code généré :
 -- Additional Params: -t JavaScript
--Transformation for implicit cursor
CREATE OR REPLACE PROCEDURE SP_SAMPLE ()
RETURNS STRING
LANGUAGE JAVASCRIPT
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "oracle",  "convertedOn": "12/16/2024",  "domain": "test" }}'
EXECUTE AS CALLER
AS
$$
  !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'PlInvokerRightsClause' NODE ***/!!!
  //AUTHID DEFINER
  null
  // SnowConvert Helpers Code section is omitted.

  let STMT_NO = new POSITIVE();
  if (SQL.ROWCOUNT /*** SSC-FDM-OR0009 - SQL IMPLICIT CURSOR VALUES MAY DIFFER ***/ == 0) {
    break;
  }
  if (SQL.ISOPEN) {
    break;
  }
  if (SQL.FOUND) {
    break;
  }
  if (SQL.NOTFOUND) {
    break;
  }
$$;
Copy

Meilleures pratiques

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0010

Description

Le type de données NUMBER est utilisé pour stocker à la fois des nombres fixes et des nombres à virgule flottante. Il fonctionne de manière cohérente sur tous les systèmes d’opération qui exécutent la base de données Oracle. Oracle recommande d’utiliser le type de données NUMBER comme premier choix pour le stockage des valeurs numériques. Le format est NUMBER (X, Y), où _ X _ représente la précision (nombre total de chiffres) et _ Y _ représente l’échelle (nombre de décimales).

Par exemple, NUMBER(5, 3) représente un format de nombre avec _ 2 _ chiffres avant la virgule et _ 3 _ chiffres après la virgule.

12.345
Copy

Autres considérations importantes :

  1. Scale _ Y _ détermine le nombre de décimales qui apparaîtront après la virgule.

  2. Scale-Precision _ Y-X _ définit le nombre minimum de zéros de fin après la virgule décimale.

Ce message apparaît lorsqu’un type de données NUMBER a une valeur de précision inférieure à sa valeur d’échelle. Snowflake ne prenant pas en charge cette configuration, la valeur de précision est automatiquement augmentée pour maintenir la cohérence des données.

Note

Veuillez noter que ce problème peut se produire en combinaison avec d’autres transformations connues, ou qu’il peut ne pas se produire du tout. Par exemple, lorsque l’échelle est remplacée par dix-neuf et que la précision précédente est supérieure à dix-neuf, ce message n’apparaît PAS.

Exemple de code

Code d’entrée :
 CREATE TABLE SampleNumberTable(Col1 NUMBER(4, 5));

INSERT INTO SampleNumberTable (Col1)
VALUES (0.00009);

INSERT INTO SampleNumberTable (Col1)
VALUES (0.000021);

INSERT INTO SampleNumberTable (Col1)
VALUES (0.012678912);

SELECT * FROM SampleNumberTable;
Copy
Col1   |
-------+
0.00009|
0.00002|
0.01268|

Copy
Code généré :
 CREATE OR REPLACE TABLE SampleNumberTable (Col1 NUMBER(5, 5) /*** SSC-FDM-OR0010 - NUMBER DATATYPE SMALLER PRECISION WAS INCREASED TO MATCH SCALE ***/ /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

INSERT INTO SampleNumberTable(Col1)
VALUES (0.00009);

INSERT INTO SampleNumberTable(Col1)
VALUES (0.000021);

INSERT INTO SampleNumberTable(Col1)
VALUES (0.012678912);

SELECT * FROM
SampleNumberTable;
Copy
Col1   |
-------+
0.00009|
0.00002|
0.01268|

Copy

Meilleures pratiques

SSC-FDM-OR0011

Description

Cet avertissement apparaît lorsque le processus de migration supprime le troisième argument facultatif de RAISE_APLICATION_ERROR, car cette fonction n’est pas disponible dans Snowflake.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE FUNCTION TEST(SAMPLE_A      IN NUMBER DEFAULT NULL,
                               SAMPLE_B       IN NUMBER DEFAULT NULL)
  RETURN NUMBER
 AS
BEGIN
    raise_application_error(-20001, 'First exception message', FALSE);
  RETURN 1;
END TEST;
Copy
Code généré :
 --** SSC-FDM-0029 - USER DEFINED FUNCTION WAS TRANSFORMED TO SNOWFLAKE PROCEDURE **
CREATE OR REPLACE PROCEDURE TEST(SAMPLE_A NUMBER(38, 18) DEFAULT NULL,
                              SAMPLE_B NUMBER(38, 18) DEFAULT NULL)
RETURNS NUMBER(38, 18)
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
 DECLARE
  FIRST_EXCEPTION_MESSAGE_EXCEPTION_CODE_0 EXCEPTION (-20001, 'FIRST EXCEPTION MESSAGE');
 BEGIN
  --** SSC-FDM-OR0011 - ADD TO STACK OF ERRORS IS NOT SUPPORTED, BOOLEAN ARGUMENT FALSE WAS REMOVED. **
  RAISE FIRST_EXCEPTION_MESSAGE_EXCEPTION_CODE_0;
  RETURN 1;
 END;
$$;
Copy

Meilleures pratiques

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0012

Description

Avant d’utiliser les instructions COMMIT et ROLLBACK dans Snowflake, vous devez d’abord exécuter des instructions de configuration spécifiques pour vous assurer qu’elles fonctionnent correctement. Ces instructions nécessitent une configuration adéquate pour fonctionner comme prévu.

 ALTER SESSION SET AUTOCOMMIT = false;
Copy

Exemple de code

Code d’entrée
 COMMIT;
ROLLBACK;
Copy
Code de sortie
 --** SSC-FDM-OR0012 - COMMIT REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
COMMIT;

--** SSC-FDM-OR0012 - ROLLBACK REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
ROLLBACK;
Copy

Meilleures pratiques

  • Exécutez la requête fournie dans la section description avant d’exécuter votre code.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com.

SSC-FDM-OR0013

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0039.

Description

Ce message apparaît lorsque SnowConvert détecte une requête contenant une clause CYCLE. Comme Snowflake ne prend pas en charge les clauses CYCLE, SnowConvert commente automatiquement ce code lors de la conversion.

Cette instruction indique quand une opération récursive se produit.

Pour de plus amples informations sur les fonctionnalités des clauses, veuillez vous référer à la documentation.

Exemple de code

Connecter par

Code d’entrée :
 CREATE OR REPLACE FORCE NONEDITIONABLE VIEW VIEW01 AS
SELECT
      UNIQUE A.*
FROM
      TABLITA A
WHERE
      A.X = A.C CONNECT BY NOCYCLE A.C = 0 START WITH A.B = 1
HAVING
      X = 1
GROUP BY
      A.C;
Copy
Code généré :
 CREATE OR REPLACE VIEW VIEW01
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
AS
SELECT DISTINCT
      A.*
FROM
      TABLITA A
WHERE
      A.X = A.C
GROUP BY
      A.C
HAVING
      X = 1
--** SSC-FDM-OR0013 - CYCLE CLAUSE IS NOT SUPPORTED IN SNOWFLAKE **
CONNECT BY
      A.C = 0 START WITH A.B = 1;
Copy

Meilleures pratiques

  • Si votre hiérarchie de données contient des cycles, reportez-vous à cet article pour savoir comment les traiter.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0014

Description

Cette erreur se produit lorsque le type de données d’une clé étrangère ne correspond pas au type de données de la colonne référencée.

Exemple de code

Code d’entrée :
 CREATE TABLE "MyDb"."MyTable"
(
    "COL1" NUMBER,
    CONSTRAINT "PK" PRIMARY KEY ("COL1")
);

CREATE TABLE "MyDb"."MyTable1"
(   
    "COL1" NUMBER(*,0),
    CONSTRAINT "FK1" FOREIGN KEY ("COL1") REFERENCES "MyDb"."MyTable" ("COL1")
);
Copy
Code généré :
 CREATE OR REPLACE TABLE "MyDb"."MyTable"
    (
        "COL1" NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/,
        CONSTRAINT "PK" PRIMARY KEY ("COL1")
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
    ;

    CREATE OR REPLACE TABLE "MyDb"."MyTable1"
    (
        "COL1" NUMBER(38) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'
    ;

    ALTER TABLE "MyDb"."MyTable1"
    ADD
    --** SSC-FDM-OR0014 - FOREIGN KEY DATA TYPE MISMATCH **
    CONSTRAINT "FK1" FOREIGN KEY ("COL1") REFERENCES "MyDb"."MyTable" ("COL1");
Copy

Note

L’erreur se produit parce que les colonnes « COL1 » dans « MyDb ». « MyTable1 », « MyDb » et « MyTable » ont des types de données différents.

Meilleures pratiques

  • Si votre hiérarchie de données contient des cycles, reportez-vous à cet article pour savoir comment les traiter.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0015

Description

Ce problème survient lors de l’utilisation de la fonction LENGTHB qui calcule la taille d’une colonne ou d’une valeur littérale en octets. Lors de la migration, cette fonction est automatiquement convertie en fonction OCTET_LENGTH de Snowflake.

Lorsque cette fonction est utilisée avec un paramètre de colonne, elle calcule la taille de la valeur de la colonne. La taille résultante peut différer entre Oracle et Snowflake car elle dépend du type de données de la colonne.

Exemple de code

Code d’entrée :
 CREATE TABLE char_table
(
	char_column1 CHAR(15)
);

INSERT INTO char_table VALUES ('Hello world');

SELECT char_column1, LENGTHB(char_column1), LENGTH('Hello world') FROM char_table;
Copy
|CHAR_COLUMN1   |LENGTHB(CHAR_COLUMN1)|LENGTH('HELLOWORLD')|
|---------------|---------------------|--------------------|
|Hello world    |15                   |11                  |


Copy
Code généré :
CREATE OR REPLACE TABLE char_table
(
	char_column1 CHAR(15)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

INSERT INTO char_table
VALUES ('Hello world');

SELECT char_column1,
OCTET_LENGTH(char_column1) /*** SSC-FDM-OR0015 - LENGTHB TRANSFORMED TO OCTET_LENGTH RESULTS MAY VARY DUE TO MEMORY MANAGEMENT OF DBMS ***/, LENGTH('Hello world') FROM
char_table;
Copy
|CHAR_COLUMN1|OCTET_LENGTH(CHAR_COLUMN1)|LENGTH('HELLO WORLD')|
|------------|--------------------------|---------------------|
|Hello world |11                        |11                   |


Copy

Meilleures pratiques

  • Passez en revue les types de données utilisés dans votre code.

  • Vérifiez l’encodage des colonnes car OCTET_LENGTH peut afficher des tailles plus importantes pour les chaînes contenant des caractères Unicode.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0016

Description

Les instructions COMMIT et ROLLBACK ne sont plus nécessaires puisque Snowflake se charge automatiquement de ces opérations.

Exemple de code

Code d’entrée
 COMMIT WORK FORCE '22.57.53';
ROLLBACK WORK FORCE '22.57.53';
Copy
Code de sortie
 --** SSC-FDM-OR0016 - COMMIT OPTIONS REMOVED BECAUSE SNOWFLAKE DOES NOT REQUIRE THEM **
--** SSC-FDM-OR0012 - COMMIT REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
COMMIT WORK;

--** SSC-FDM-OR0016 - ROLLBACK OPTIONS REMOVED BECAUSE SNOWFLAKE DOES NOT REQUIRE THEM **
--** SSC-FDM-OR0012 - ROLLBACK REQUIRES THE APPROPRIATE SETUP TO WORK AS INTENDED **
ROLLBACK WORK;
Copy

Meilleures pratiques

SSC-FDM-OR0017

Description

L’expression AT TIME ZONE ne prend plus en charge le mot-clé DBTIMEZONE.

Exemple de code

Code d’entrée :
 SELECT TIMESTAMP '1998-12-25 09:26:50.12' AT TIME ZONE DBTIMEZONE FROM DUAL;
Copy
Code généré :
 SELECT
--** SSC-FDM-OR0017 - DBTIMEZONE WAS REMOVED TO USE THE DEFAULT VALUE OF THE TIMESTAMP **
TO_TIMESTAMP_LTZ( TIMESTAMP '1998-12-25 09:26:50.12')
FROM DUAL;
Copy

Meilleures pratiques

  • L’ensemble des paramètres de la session TIMEZONE permet d’obtenir des résultats cohérents.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0018

Description

Cet avertissement indique qu’il peut y avoir des différences fonctionnelles entre l’instruction de fusion d’Oracle et l’implémentation de l’instruction de fusion de Snowflake.

Exemple de code

Code d’entrée :
 MERGE INTO people_target pt 
USING people_source ps 
ON    (pt.person_id = ps.person_id) 
WHEN MATCHED THEN UPDATE 
  SET pt.first_name = ps.first_name, 
      pt.last_name = ps.last_name, 
      pt.title = ps.title 
  DELETE where pt.title  = 'Mrs.' 
WHEN NOT MATCHED THEN INSERT 
  (pt.person_id, pt.first_name, pt.last_name, pt.title) 
  VALUES (ps.person_id, ps.first_name, ps.last_name, ps.title) 
  WHERE ps.title = 'Mr';
Copy
Code généré :
 --** SSC-FDM-OR0018 - SNOWFLAKE MERGE STATEMENT MAY HAVE SOME FUNCTIONAL DIFFERENCES COMPARED TO ORACLE **
--** SSC-FDM-0007 - MISSING DEPENDENT OBJECTS "people_target", "people_source" **
MERGE INTO people_target pt
USING people_source ps
ON    (pt.person_id = ps.person_id)
      WHEN MATCHED AND pt.title  = 'Mrs.' THEN
        DELETE
      WHEN MATCHED THEN
        UPDATE SET
          pt.first_name = ps.first_name,
               pt.last_name = ps.last_name,
               pt.title = ps.title
      WHEN NOT MATCHED AND ps.title = 'Mr' THEN
        INSERT
        (pt.person_id, pt.first_name, pt.last_name, pt.title)
        VALUES (ps.person_id, ps.first_name, ps.last_name, ps.title);
Copy

Meilleures pratiques

  • Si vos résultats diffèrent de ceux d’Oracle, veuillez suivre les étapes suivantes :

    • Revoir les priorités de l’ordre d’exécution dans le lien

    • Exécutez toutes les instructions DML ignorées avant ou après l’instruction de fusion, selon le cas

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0019

Description

Cet avertissement apparaît lorsqu’une unité de cadre de fenêtre ROWS est détectée dans votre code source.

La fonction ROWS repose sur l’ordre physique des lignes dans la base de données, qui peut varier lors de la migration vers une autre plateforme. Pour éviter les incohérences, vous pouvez ajouter des clauses explicites ORDER BY afin de garantir un ordre cohérent des lignes.

Note

Selon la documentation Oracle, les fonctions analytiques se comportent différemment en fonction de leur type de décalage :

  • Les fonctions de décalage logique renvoient toujours des résultats déterministes

  • Les fonctions de décalage physique peuvent renvoyer des résultats non déterministes, à moins que vous ne garantissiez un ordre unique

  • Pour obtenir un ordre unique, vous devrez peut-être inclure plusieurs colonnes dans la clause order_by_clause

Il est recommandé de vérifier que la fonction produit des résultats cohérents (déterministes) avant de poursuivre, afin d’éviter tout problème potentiel.

Exemple de code

Code d’entrée :
 SELECT
SUM(C_BIRTH_DAY)
OVER (
    ORDER BY C_BIRTH_COUNTRY
    ROWS UNBOUNDED PRECEDING) AS MAX1
FROM WINDOW_TABLE;
Copy
Code généré :
 SELECT
SUM(C_BIRTH_DAY)
OVER (
    ORDER BY C_BIRTH_COUNTRY ROWS UNBOUNDED PRECEDING /*** SSC-FDM-OR0019 - WINDOW FRAME OUTPUT MAY NOT BE EQUIVALENT ***/) AS MAX1
FROM
WINDOW_TABLE;
Copy

Meilleures pratiques

  • Ajoutez une clause ORDER BY à vos requêtes pour garantir un ordre cohérent des lignes dans les résultats de Snowflake.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0020

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0051.

Description

Cet avertissement apparaît lors de l’utilisation de la fonction PRAGMA EXCEPTION_INIT à l’intérieur d’une procédure. Le nom de l’exception et le code d’erreur SQL sont définis dans la fonction RAISE. Lors de la conversion vers Snowflake Scripting, le code d’erreur SQL est inclus dans la déclaration d’exception. Cependant, certains codes d’erreur peuvent ne pas être valables dans Snowflake Scripting.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE EXCEPTION_DECLARATION_SAMPLE AUTHID DEFINER IS
  NEW_EXCEPTION EXCEPTION;
  PRAGMA EXCEPTION_INIT(NEW_EXCEPTION, -63);
  NEW_EXCEPTION2 EXCEPTION;
  PRAGMA EXCEPTION_INIT ( NEW_EXCEPTION2, -20100 );
BEGIN

  IF true THEN
    RAISE NEW_EXCEPTION;
  END IF;

EXCEPTION
    WHEN NEW_EXCEPTION THEN
        --Handle Exceptions
        NULL;
END;
/
Copy
Code généré :
Snowflake Scripting
 CREATE OR REPLACE PROCEDURE EXCEPTION_DECLARATION_SAMPLE ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0097 - PROCEDURE PROPERTIES ARE NOT SUPPORTED IN SNOWFLAKE PROCEDURES ***/!!!
AS
$$
  DECLARE
    --** SSC-FDM-OR0023 - EXCEPTION CODE NUMBER EXCEEDS SNOWFLAKE SCRIPTING LIMITS **
    NEW_EXCEPTION EXCEPTION;
    --** SSC-FDM-OR0020 - PRAGMA EXCEPTION_INIT IS NOT SUPPORTED **
    PRAGMA EXCEPTION_INIT(NEW_EXCEPTION, -63);
    NEW_EXCEPTION2 EXCEPTION (-20100, '');
    --** SSC-FDM-OR0020 - PRAGMA EXCEPTION_INIT IS NOT SUPPORTED **
  PRAGMA EXCEPTION_INIT ( NEW_EXCEPTION2, -20100 );
  BEGIN
    IF (true) THEN
      RAISE NEW_EXCEPTION;
    END IF;
    EXCEPTION
        WHEN NEW_EXCEPTION THEN
            --Handle Exceptions
            NULL;
    END;
$$;
Copy

Meilleures pratiques

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0021

Description

La condition FOR LOOP dans Snowflake Scripting exige une valeur INTEGER ou une expression qui aboutit à INTEGER. Si vous utilisez des nombres à virgule flottante, ils seront automatiquement arrondis, ce qui peut modifier la limite de la boucle prévue.

La limite inférieure sera arrondie au nombre entier le plus proche. Par exemple :

3.1 -> 3, 6.7 -> 7, 4.5 -> 5

La limite supérieure sera arrondie au nombre entier le plus proche. Par exemple :

3.1 -> 3, 6.7 -> 6, 4.5 -> 4

 CREATE OR REPLACE PROCEDURE p1()
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
    DECLARE
        var1 VARCHAR DEFAULT '';
        var2 VARCHAR DEFAULT '';
        var3 VARCHAR DEFAULT '';
    BEGIN
        --Loop 1
        FOR i IN 1.2 TO 5.2 DO
            var1 := var1 || ' ' || i::VARCHAR;
        END FOR;
        
        --Loop 2
        FOR i IN 1.7 TO 5.5 DO
            var2 := var2 || ' ' || i::VARCHAR;
        END FOR;
        
        --Loop 3
        FOR i IN 1.5 TO 5.8 DO
            var3 := var3 || ' ' || i::VARCHAR;
        END FOR;
        RETURN  ' Loop1: ' || var1 ||
                ' Loop2: ' || var2 ||
                ' Loop3: ' || var3;
    END;
$$;

CALL p1();
Copy
P1                                                |
--------------------------------------------------+
 Loop1:  1 2 3 4 5                                |
 Loop2:  2 3 4 5                                  |
 Loop3:  2 3 4 5                                  |

Copy

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE p1
AS
BEGIN
FOR i NUMBER(5,1) IN 1.2 .. 5.7 LOOP
    NULL;
END LOOP;
END;
Copy
Code généré :
 CREATE OR REPLACE PROCEDURE p1 ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    BEGIN
        --** SSC-FDM-OR0021 - FOR LOOP WITH FLOAT NUMBER AS LOWER OR UPPER BOUND MAY NOT BEHAVE CORRECTLY IN SNOWFLAKE SCRIPTING **
        FOR i IN 1.2 TO 5.7 LOOP
            NULL;
        END LOOP;
    END;
$$;
Copy

Meilleures pratiques

  • Modifiez la condition FOR LOOP pour utiliser des valeurs entières au lieu d’autres types de données.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0022

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0100.

Description

La condition FOR LOOP de Snowflake Scripting ne prend en charge qu’une seule condition, contrairement à Oracle qui en autorise plusieurs. Lors de la migration à partir d’Oracle, seule la première condition sera transformée, et toutes les autres conditions seront ignorées.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE P3
AS
BEGIN
FOR i IN REVERSE 1..3,
REVERSE i+5..i+7
LOOP
    NULL;
END LOOP; 
END;
Copy
Code généré :
 CREATE OR REPLACE PROCEDURE P3 ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    BEGIN
        --** SSC-FDM-OR0022 - FOR LOOP WITH MULTIPLE CONDITIONS IS CURRENTLY NOT SUPPORTED BY SNOWFLAKE SCRIPTING **
        FOR i IN REVERSE 1 TO 3 LOOP
            NULL;
        END LOOP;
    END;
$$;
Copy

Meilleures pratiques

  • Décomposez les instructions FOR LOOP complexes en plusieurs boucles plus simples ou réécrivez la condition de la boucle pour plus de clarté.

  • Pour toute assistance supplémentaire, veuillez contacter notre équipe de support à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0023

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0099.

Description

Cet avertissement apparaît lorsqu’un numéro de code d’exception se situe en dehors de la plage autorisée pour les exceptions de Snowflake Scripting. Les codes d’exception valides doivent être des entiers compris entre -20000 et -20999.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE procedure_exception
IS
my_exception EXCEPTION;
PRAGMA EXCEPTION_INIT ( my_exception, -19000 );
BEGIN
    NULL; 
END;
Copy
Code généré :
CREATE OR REPLACE PROCEDURE procedure_exception ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        --** SSC-FDM-OR0023 - EXCEPTION CODE NUMBER EXCEEDS SNOWFLAKE SCRIPTING LIMITS **
        my_exception EXCEPTION;
        --** SSC-FDM-OR0020 - PRAGMA EXCEPTION_INIT IS NOT SUPPORTED **
        PRAGMA EXCEPTION_INIT ( my_exception, -19000 );
    BEGIN
        NULL;
    END;
$$;
Copy

Meilleures pratiques

  • Vérifiez que votre code d’exception se situe dans la plage autorisée par Snowflake Scripting. Si ce n’est pas le cas, sélectionnez un autre numéro d’exception disponible.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0024

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0002.

Description

Cette erreur se produit lorsque le système ne peut pas résoudre les colonnes d’une expression de sélection. Cela se produit généralement dans deux cas de figure :

  1. Lorsqu’on fait référence à un accès de type qui n’a pas été résolu

  2. Lors de l’utilisation d’une colonne avec un type défini par l’utilisateur qui ne dispose pas de définitions de colonnes (par exemple, un type sans corps ou un type d’objet sans colonnes définies)

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE record_unknown_table_proc
AS
    unknownTable_variable_rowtype unknownTable%ROWTYPE;
BEGIN
    INSERT INTO MyTable values unknownTable_variable_rowtype;
END;
Copy
Code généré :
 CREATE OR REPLACE PROCEDURE record_unknown_table_proc ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        unknownTable_variable_rowtype OBJECT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - ROWTYPE DATA TYPE CONVERTED TO OBJECT ***/!!! := OBJECT_CONSTRUCT();
    BEGIN
        INSERT INTO MyTable
        SELECT
            null /*** SSC-FDM-OR0024 - COLUMNS FROM EXPRESSION unknownTable%ROWTYPE NOT FOUND ***/;
    END;
$$;
Copy

Meilleures pratiques

  • Vérifiez si la définition du type référencé contient des définitions de colonnes.

  • Pour toute assistance supplémentaire, contactez-nous à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0025

Description

La contrainte NOT NULL, qui est utilisée dans les déclarations de variables Oracle au sein des procédures, n’est pas disponible dans les déclarations de variables de procédures Snowflake.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE PROC04
IS
 var3 FLOAT NOT NULL := 100;
BEGIN
NULL;
END;
Copy
Code généré :
 CREATE OR REPLACE PROCEDURE PROC04 ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
 DECLARE
  var3 FLOAT := 100 /*** SSC-FDM-OR0025 - NOT NULL CONSTRAINT IS NOT SUPPORTED BY SNOWFLAKE ***/;
 BEGIN
  NULL;
 END;
$$;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0026

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0045.

Description

Cette erreur se produit lorsque vous tentez de convertir des données vers un type de données non pris en charge.

Exemple

Code d’entrée :
 select cast(' $123.45' as number, 'L999.99') from dual;
Copy
Code généré :
 select
--** SSC-FDM-OR0026 - CAST TYPE NOT SUPPORTED **
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0011 - THE FORMAT PARAMETER ' $123.45' IS NOT SUPPORTED ***/!!!
 cast(' $123.45' as NUMBER(38, 18) , 'L999.99') from dual;
Copy

EWIs connexes

  1. SSC-EWI-OR0011 : le paramètre “format” ne peut pas être utilisé dans ce contexte.

Recommandations

  • L’opération de conversion est transformée en une fonction définie par l’utilisateur (UDF/Stub), ce qui vous permet de personnaliser le comportement de la fonction de conversion.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0027

Note

Cette FDM a été supprimée. Pour plus d’informations, veuillez consulter la documentation relative à SSC-EWI-OR0029.

Description

Snowflake ne prend pas en charge la fonction « Défaut en cas d’erreur de conversion ».

Exemple de code

Code d’entrée :
 SELECT TO_NUMBER('2,00' DEFAULT 0 ON CONVERSION ERROR) "Value" FROM DUAL;
Copy
Code de sortie :
 SELECT
--** SSC-FDM-OR0027 - DEFAULT ON CONVERSION ERROR NOT SUPPORTED IN SNOWFLAKE IN SNOWFLAKE **
TO_NUMBER('2,00') "Value" FROM DUAL;
Copy

Recommandations

  • Envisagez de créer une fonction définie par l’utilisateur (UDF) pour répliquer la fonctionnalité de la valeur DEFAULT lors du traitement de ON CONVERSION ERROR.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0028

Note

Cette FDM a été supprimée. Pour la documentation actuelle, veuillez vous référer à SSC-EWI-OR0031.

Description

Cette erreur se produit lorsque vous tentez d’utiliser un paramètre non pris en charge dans la fonction SYS_CONTEXT.

Exemple de code

Code d’entrée :
 SELECT SYS_CONTEXT ('USERENV', 'NLS_SORT') FROM DUAL;
Copy
Code de sortie :
 SELECT
--** SSC-FDM-OR0028 - 'NLS_SORT' SYS_CONTEXT PARAMETER NOT SUPPORTED IN SNOWFLAKE **
SYS_CONTEXT ('USERENV', 'NLS_SORT') FROM DUAL;
Copy

Recommandations

  • La fonction est convertie en un stub de fonction définie par l’utilisateur (UDF), que vous pouvez modifier pour répliquer le comportement du paramètre SYS_CONTEXT.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0029

Description

L’instruction ALTER SESSION contient une clause ou une configuration qui n’est pas prise en charge dans la version actuelle.

Exemple de code

Code d’entrée :
 ALTER SESSION SET SQL_TRACE TRUE;
Copy
Code de sortie :
 ----** SSC-FDM-OR0029 - THIS ALTER SESSION CONFIGURATION IS NOT SUPPORTED IN SNOWFLAKE **
--ALTER SESSION SET SQL_TRACE TRUE
                                ;
Copy

Recommandations

SSC-FDM-OR0030

Description

Lorsqu’une requête inclut ROWID comme pseudo-colonne, elle est convertie en NULL pour éviter les erreurs d’exécution, et un message d’erreur, d’avertissement et d’information (EWI) est généré. Il n’existe actuellement aucune fonction permettant de répliquer la fonctionnalité de ROWID.

Exemple de code

Code d’entrée Oracle :
 SELECT ROWID FROM T1;
Copy
Code de sortie :
 SELECT
--** SSC-FDM-OR0030 - ROWID PSEUDOCOLUMN IS NOT SUPPORTED IN SNOWFLAKE, IT WAS CONVERTED TO NULL TO AVOID RUNTIME ERRORS **
'' AS ROWID
FROM
T1;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0031

Description

Cette erreur indique que les instructions DML de Snowflake ne prennent pas en charge la clause error_logging, qui est une fonction disponible dans les instructions DML d’Oracle.

Exemple de code

Code d’entrée :
 MERGE INTO people_target pt 
USING people_source ps ON (pt.person_id = ps.person_id) 
WHEN MATCHED THEN UPDATE 
  SET pt.first_name = ps.first_name, 
      pt.last_name = ps.last_name, 
      pt.title = ps.title
LOG ERRORS;
Copy
Code de sortie :
 MERGE INTO people_target pt
USING people_source ps ON (pt.person_id = ps.person_id)
  WHEN MATCHED THEN
    UPDATE
    SET pt.first_name = ps.first_name,
        pt.last_name = ps.last_name,
        pt.title = ps.title
--  --** SSC-FDM-OR0031 - THE ERROR LOGGING CLAUSE IN DML STATEMENTS IS NOT SUPPORTED BY SNOWFLAKE **
--LOG ERRORS
          ;
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0032

Description

Cet avertissement apparaît lors de l’utilisation de la fonction STANDARD_HASH d’Oracle avec des paramètres autres que des chaînes, car elle peut produire des résultats différents lors de la migration vers Snowflake.

Exemple de code

Code d’entrée :
 SELECT STANDARD_HASH(1+1) FROM DUAL;
Copy
 STANDARD_HASH(1+1)                               |
--------------------------------------------------+
 E39323970701D93598FC1D357F4BF04578CE3242         |

Copy
Code de sortie :
SELECT
--** SSC-FDM-OR0032 - STANDARD HASH FUNCTION WITH INPUT NON-STRING PARAMETER GENERATES A DIFFERENT RESULT IN SNOWFLAKE **
SHA1(1+1)
FROM DUAL;
Copy
 SHA1(1+1)                                        |
--------------------------------------------------+
 da4b9237bacccdf19c0760cab7aec4a8359010b0         |
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0033

Description

Cet avertissement apparaît lorsque SnowConvert migre une fonction de paquet intégrée DBMS_RANDOM.VALUE d’Oracle. La fonction définie par l’utilisateur (UDF) créée pour répliquer cette fonctionnalité est moins précise que la fonction Oracle originale.

Exemple de code

Code d’entrée :

 CREATE OR REPLACE PROCEDURE built_in_package_proc
IS
var1 NUMBER;
BEGIN
    SELECT DBMS_RANDOM.VALUE() INTO var1 FROM DUAL;

    SELECT DBMS_RANDOM.VALUE(2,10) INTO var1 FROM DUAL; 
END;
Copy
Code de sortie :
 CREATE OR REPLACE PROCEDURE built_in_package_proc ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        var1 NUMBER(38, 18);
    BEGIN
        SELECT
            --** SSC-FDM-OR0033 - DBMS_RANDOM.VALUE DIGITS OF PRECISION ARE LOWER IN SNOWFLAKE **
            DBMS_RANDOM.VALUE_UDF() INTO
            :var1
        FROM DUAL;

        SELECT
            --** SSC-FDM-OR0033 - DBMS_RANDOM.VALUE DIGITS OF PRECISION ARE LOWER IN SNOWFLAKE **
            DBMS_RANDOM.VALUE_UDF(2,10) INTO
            :var1
        FROM DUAL;
    END;
$$;
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0034

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter la documentation SSC-EWI-OR0001.

Description

Cette erreur se produit lorsque la valeur de l’instruction START WITH est définie sur LIMIT VALUE.

Dans Oracle, cette clause n’est utilisée qu’avec l’instruction ALTER TABLE.

  • L’option START WITH LIMIT VALUE, qui n’est disponible que pour identity_options, ne peut être utilisée qu’avec ALTER TABLE MODIFY. Lorsque vous utilisez START WITH LIMIT VALUE, la base de données d’Oracle va :

  1. Verrouiller la table

  2. Trouvez la valeur maximale (pour les séquences croissantes) ou minimale (pour les séquences décroissantes) dans la colonne « identité »

  3. Cet ensemble de valeurs constitue le filigrane haut du générateur de séquence

  4. Générer la valeur suivante en ajoutant la valeur INCREMENT BY au filigrane haut (pour les séquences croissantes) ou en la soustrayant (pour les séquences décroissantes)

ALTER TABLE ORACLE

Exemple de code

Code d’entrée :
 CREATE SEQUENCE SEQUENCE1
  START WITH LIMIT VALUE;
Copy
Code de sortie :
 CREATE OR REPLACE SEQUENCE SEQUENCE1
  --** SSC-FDM-OR0034 - SEQUENCE START VALUE WITH 'LIMIT VALUE' IS NOT SUPPORTED BY SNOWFLAKE. **
  START WITH LIMIT VALUE
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';
Copy

Recommandations

  • Aucune action n’est nécessaire de votre part.

  • Pour toute aide supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0035

Description

Cet avertissement apparaît lorsque SnowConvert migre une fonction de paquet intégrée DBMS_OUTPUT.PUT_LINE d’Oracle. Vous devez examiner la fonction définie par l’utilisateur (UDF) générée pour vous assurer qu’elle fonctionne comme prévu.

Ce message d’avertissement indique que vous devez revoir l’implémentation de DBMS_OUTPUT.PUT_LINE_UDF pour de plus amples informations.

Avertissement

Cet UDF peut avoir un impact sur les performances. Pour activer la connexion, décommentez le code d’implémentation. Veuillez noter que la configuration actuelle utilise une table temporaire. Si vous souhaitez que les données persistent d’une session à l’autre, supprimez le mot-clé TEMPORARY de l’instruction CREATE TABLE.

Après avoir exécuté la fonction DBMS_OUTPUT.PUT_LINE_UDF, vous pouvez voir tous les journaux en exécutant cette requête :

SELECT * FROM DBMS_OUTPUT.DBMS_OUTPUT_LOG

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE builtin_package_call
IS
BEGIN
	DBMS_OUTPUT.PUT_LINE(1);
	DBMS_OUTPUT.PUT_LINE("Test");
END;
Copy
Code de sortie :
 CREATE OR REPLACE PROCEDURE builtin_package_call ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
	BEGIN
		--** SSC-FDM-OR0035 - CHECK UDF IMPLEMENTATION FOR DBMS_OUTPUT.PUT_LINE_UDF. **
		CALL DBMS_OUTPUT.PUT_LINE_UDF(1);
		--** SSC-FDM-OR0035 - CHECK UDF IMPLEMENTATION FOR DBMS_OUTPUT.PUT_LINE_UDF. **
		CALL DBMS_OUTPUT.PUT_LINE_UDF("Test");
	END;
$$;
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0036

Description

Ce message apparaît lorsque SnowConvert supprime certains arguments lors de la migration d’une procédure ou d’une fonction d’un paquet intégré Oracle.

Les paramètres originaux qui n’ont pas d’équivalents dans Snowflake ou qui ne sont plus nécessaires seront supprimés du code converti. Toutefois, ces paramètres sont documentés dans les messages EWI (Error, Warning, Information) à des fins de référence et de suivi.

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE built_in_package_proc
IS
w_file UTL_FILE.FILE_TYPE;
BEGIN
    w_file:= UTL_FILE.FOPEN('MY_DIR','test.txt','W',32760);
    UTL_FILE.PUT_LINE(w_file,'New line');    
END;
Copy
Code de sortie :
 CREATE OR REPLACE PROCEDURE built_in_package_proc ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        w_file OBJECT /*** SSC-FDM-0015 - REFERENCED CUSTOM TYPE 'UTL_FILE.FILE_TYPE' IN QUERY NOT FOUND, USAGES MAY BE AFFECTED ***/ := OBJECT_CONSTRUCT();
    BEGIN
        --** SSC-FDM-OR0036 - PARAMETERS: 'LOCATION, MAX_LINESIZE_UDF' UNNECESSARY IN THE IMPLEMENTATION. **
        CALL UTL_FILE.FOPEN_UDF('test.txt', 'W');
        SELECT
            *
        INTO
            w_file
        FROM
            TABLE(RESULT_SCAN(LAST_QUERY_ID()));
        --** SSC-FDM-OR0036 - PARAMETERS: 'AUTOFLUSH_UDF' UNNECESSARY IN THE IMPLEMENTATION. **
        CALL UTL_FILE.PUT_LINE_UDF(:w_file, 'New line');
    END;
$$;
Copy

Recommandations

SSC-FDM-OR0037

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0004.

Note

Pour une meilleure lisibilité, nous avons simplifié certaines sections du code dans cet exemple.

Description

Cet avertissement apparaît lorsqu’une instruction SELECT contient une clause que Snowflake ne prend pas en charge. Les clauses suivantes ne sont pas prises en charge :

  • Bases de données conteneurisées et bases de données enfichables

  • Limites de l’utilisation des sous-requêtes

  • Structures de données hiérarchiques et requêtes

  • Modifications de la table externe

  • Liens entre bases de données et connexions entre bases de données

  • Configurations de la mise en commun des bases de données

  • Partition des tables

  • Subdivision des tables

  • Opérations de requêtes hiérarchiques

Exemple de code

Code d’entrée :
 SELECT * FROM TABLE1 EXTERNAL MODIFY (LOCATION 'file.csv' REJECT LIMIT UNLIMITED);
Copy
Code de sortie :
 --** SSC-FDM-0007 - MISSING DEPENDENT OBJECT "TABLE1" **
SELECT * FROM
TABLE1
--       --** SSC-FDM-OR0037 - THE 'OPTIONAL MODIFIED EXTERNAL' SYNTAX IN SELECT IS NOT SUPPORTED IN SNOWFLAKE **
--       EXTERNAL MODIFY (LOCATION 'file.csv' REJECT LIMIT UNLIMITED)
                                                                   ;
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0038

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0128.

Description

Ce message indique qu’un attribut de curseur booléen ne peut pas être utilisé dans SnowScript, soit parce qu’il n’est pas pris en charge, soit parce qu’il n’existe pas de fonctionnalité équivalente. Le tableau ci-dessous dresse la liste des attributs booléens du curseur qui peuvent être répliqués dans SnowScript :

Attribut booléen du curseur

Statut

%FOUND

Peut être émulé

%NOTFOUND

Peut être émulé

%ISOPEN

Non pris en charge

Exemple de code

Code d’entrée :
 CREATE OR REPLACE PROCEDURE cursor_attributes_proc
IS
    is_open_attr BOOLEAN;
    found_attr BOOLEAN;
    my_record table1%ROWTYPE;
    CURSOR my_cursor IS SELECT * FROM table1;
BEGIN
    OPEN my_cursor;
    LOOP
        FETCH my_cursor INTO my_record;
        EXIT WHEN my_cursor%NOTFOUND;
        is_open_attr := my_cursor%ISOPEN;
        found_attr := my_cursor%FOUND;
    END LOOP;
    CLOSE my_cursor;
END;
Copy
Code de sortie :
 --** SSC-FDM-0007 - MISSING DEPENDENT OBJECT "table1" **
CREATE OR REPLACE PROCEDURE cursor_attributes_proc ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        is_open_attr BOOLEAN;
        found_attr BOOLEAN;
        my_record OBJECT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - ROWTYPE DATA TYPE CONVERTED TO OBJECT ***/!!! := OBJECT_CONSTRUCT();
        my_cursor CURSOR
        FOR
            SELECT
                OBJECT_CONSTRUCT( *) sc_cursor_record FROM
                table1;
    BEGIN
        OPEN my_cursor;
        LOOP
            --** SSC-PRF-0003 - FETCH INSIDE A LOOP IS CONSIDERED A COMPLEX PATTERN, THIS COULD DEGRADE SNOWFLAKE PERFORMANCE. **
            FETCH my_cursor INTO
                :my_record;
            IF (my_record IS NULL) THEN
                EXIT;
            END IF;
            is_open_attr := null /*my_cursor%ISOPEN*/ /*** SSC-FDM-OR0038 - BOOLEAN CURSOR ATTRIBUTE %ISOPEN IS NOT SUPPORTED IN SNOWFLAKE ***/;
            found_attr := my_record IS NOT NULL;
        END LOOP;
        CLOSE my_cursor;
    END;
$$;
Copy

Recommandations

SSC-FDM-OR0039

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0007.

Description

Ce message apparaît lorsque vous tentez d’utiliser une instruction Create Type qui n’est pas prise en charge par Snowflake.

Exemple de code

Code d’entrée (Oracle) :
 CREATE TYPE type6 UNDER type5(COL1 INTEGER);
Copy
Code de sortie :
 ----** SSC-FDM-OR0039 - CREATE TYPE SUBTYPE IS NOT SUPPORTED IN SNOWFLAKE **
--CREATE TYPE type6 UNDER type5(COL1 INTEGER)
                                           ;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0040

Description

Snowflake ne permet pas de modifier les valeurs numériques. Dans Snowflake, les décimales sont toujours représentées en utilisant un point (.) comme séparateur décimal. L’instruction relative à la session ALTER a été commentée et un message d’avertissement a été ajouté.

Exemple de code

Oracle :
 ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
Copy
Exécution de scripts Snowflake
 ----** SSC-FDM-OR0040 - NUMERIC CHARACTERS CANNOT BE ALTERED IN SNOWFLAKE. THE DECIMAL SEPARATOR IN SNOWFLAKE IS THE DOT CHARACTER. **
--ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.'
                                               ;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0041

Note

Ce FDM n’est plus pris en charge. Pour plus d’informations, veuillez consulter SSC-EWI-OR0076

Description

La traduction intégrée des paquets n’est pas disponible actuellement.

Exemple de code

Code d’entrée (Oracle) :
 SELECT
UTL_RAW.CAST_TO_RAW('some magic here'),
DBMS_UTILITY.GET_TIME
FROM DUAL;
Copy
Code de sortie :
 SELECT
--** SSC-FDM-OR0041 - TRANSLATION FOR BUILT-IN PACKAGE 'UTL_RAW.CAST_TO_RAW' IS NOT CURRENTLY SUPPORTED. **
'' AS CAST_TO_RAW,
--** SSC-FDM-OR0041 - TRANSLATION FOR BUILT-IN PACKAGE 'DBMS_UTILITY.GET_TIME' IS NOT CURRENTLY SUPPORTED. **
'' AS GET_TIME
FROM DUAL;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0042

Description

Le type de données Date est converti en Date ou Horodatage dans Snowflake. Cette conversion dépend de l’indicateur –disableDateAsTimestamp, car le type Date de Snowflake se comporte différemment du type Date d’Oracle.

Différences clés

DATE Oracle

Snowflake DATE

Fonctionnalité

Enregistre les informations relatives à la date et à l’heure

Ne stocke que les informations relatives à la date (année, mois, jour)

Stockage interne

Nombre binaire représentant les secondes écoulées depuis l’époque

Format compact optimisé pour les dates

Cas d’utilisation

Stockage polyvalent de la date et de l’heure

Scénarios dans lesquels seules des informations sur la date sont nécessaires

Avantages

Prise en charge de la date et de l’heure

Stockage plus efficace des dates

Limitations

Il n’est pas possible d’enregistrer séparément la date et l’heure.

Ne stocke pas d’informations sur l’heure

Exemple de code

Code d’entrée (Oracle) :
 CREATE TABLE "PUBLIC"."TABLE1"
(
    "CREATED_DATE" DATE,
    "UPDATED_DATE" DATE
);
Copy
Code de sortie :
 CREATE OR REPLACE TABLE "PUBLIC"."TABLE1"
    (
        "CREATED_DATE" TIMESTAMP /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/,
        "UPDATED_DATE" 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"}}'
    ;
Copy
 -- Additional Params: --disableDateAsTimestamp
CREATE OR REPLACE TABLE "PUBLIC"."TABLE1"
    (
        "CREATED_DATE" DATE /*** SSC-FDM-OR0042 - DATE TYPE COLUMN HAS A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/,
        "UPDATED_DATE" 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"}}'
    ;
Copy

Recommandations

  • Aucune action n’est requise de la part des utilisateurs.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0043

Description

Cette erreur se produit lors de la conversion d’une fonction TO_CLOB en TO_VARCHAR. Lorsque vous travaillez avec les paramètres BFILE ou BLOB, il se peut que vous deviez spécifier un paramètre de format pour une conversion correcte.

Exemple de code

Code d’entrée :
 SELECT TO_CLOB('Lorem ipsum dolor sit amet') FROM DUAL;
Copy
Code de sortie :
 SELECT
--** SSC-FDM-OR0043 - BFILE/BLOB PARAMETERS ARE CONSIDERED BINARY, FORMAT MAY BE NEEDED. **
TO_VARCHAR('Lorem ipsum dolor sit amet')
FROM DUAL;
Copy

Recommandations

  • Vérifiez que les résultats de la sortie correspondent entre le code original et le code converti. Ajoutez un paramètre de format si nécessaire pour assurer la compatibilité.

  • Pour toute assitance supplémentaire, contactez notre équipe de support à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0044

Note

Pour plus de clarté, nous avons simplifié le code en omettant certaines parties.

Description

Cet avertissement apparaît lors de l’utilisation de la fonction REGEXP_LIKE d’Oracle avec un paramètre de correspondance (troisième paramètre). L’avertissement indique que la fonction REGEXP_LIKE_UDF de Snowflake, qui remplace REGEXP_LIKE d’Oracle, peut ne pas prendre en charge tous les caractères des paramètres de correspondance. Le résultat de la requête dans Snowflake peut donc être différent de celui d’Oracle.

Exemple de code

Code d’entrée Oracle :
 SELECT last_name
FROM hr.employees
WHERE REGEXP_LIKE (last_name, '([aeiou])\1', 'i')
ORDER BY last_name;
Copy
Code de sortie :
 SELECT last_name
FROM
hr.employees
WHERE
--** SSC-FDM-OR0044 - REGEXP_LIKE_UDF MATCH PARAMETER MAY HAVE SOME FUNCTIONAL DIFFERENCES COMPARED TO ORACLE **
PUBLIC.REGEXP_LIKE_UDF(last_name, '([aeiou])\\1', 'i')
ORDER BY last_name;
Copy
  • Si votre condition REGEXP_LIKE contient des caractères non pris en charge dans la fonction définie par l’utilisateur, envisagez de modifier l’expression régulière pour obtenir le même comportement de correspondance sans utiliser ces caractères. Pour obtenir une liste complète des caractères non pris en charge, veuillez consulter la documentation REGEXP_LIKE_UDF.

  • Pour toute assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0047

Description

Le paramètre de session TIMESTAMP_OUTPUT_FORMAT doit être réglé sur « DD-MON-YY HH24.MI.SS.FF AM TZH:TZM » pour s’assurer que les horodatages sont affichés dans le bon format et correspondent à la sortie attendue.

Exemple de code

Code d’entrée :
 SELECT SYSTIMESTAMP FROM DUAL;
Copy
Exemple du format TIMESTAMP par défaut d’Oracle

13-JAN-21 04:18:37.288656 PM UTC

Code de sortie :
 SELECT
CURRENT_TIMESTAMP() /*** SSC-FDM-OR0047 - YOU MAY NEED TO SET TIMESTAMP OUTPUT FORMAT ('DD-MON-YY HH24.MI.SS.FF AM TZH:TZM') ***/
FROM DUAL;
Copy
Comment Snowflake affiche TIMESTAMPS par défaut

2021-01-13 08:18:19.720 -080

Recommendations

  • Pour modifier l’affichage des horodatages dans Snowflake, exécutez cette requête :

    ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM';
Copy

SSC-FDM-OR0045

Note

Cette FDM a été supprimée. Pour plus d’informations, veuillez consulter la documentation relative à SSC-EWI-OR0010.

Description

Cet avertissement apparaît lorsque les clauses PARTITION et SUBPARTITION sont utilisées dans une requête. Snowflake gère automatiquement la partition des données, ces clauses ne sont donc pas nécessaires.

Exemple de code

Code d’entrée :
 SELECT * FROM TABLITA PARTITION(col1);
Copy
Code de sortie :
 SELECT * FROM
TABLITA
--        --** SSC-FDM-OR0045 - PARTITIONS CLAUSES ARE HANDLED BY SNOWFLAKE **
--        PARTITION(col1)
                       ;
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com

SSC-FDM-OR0046

Note

Pour une meilleure lisibilité, nous avons simplifié certaines sections du code dans cet exemple.

Description

Cet avertissement se produit lorsqu’une restriction de sous-requête est trouvée dans une instruction SELECT.

Exemple de code

Code d’entrée :
 SELECT * FROM LATERAL(SELECT * FROM TABLITA WITH READ ONLY CONSTRAINT T);
Copy
Code de sortie :
 SELECT * FROM LATERAL(SELECT * FROM
TABLITA
--        --** SSC-FDM-OR0046 - THE SUBQUERY RESTRICTION IS NOT POSSIBLE IN SNOWFLAKE **
--        WITH READ ONLY CONSTRAINT T
                                   );
Copy

Recommandations

  • Aucune action n’est requise de votre part.

  • Pour une assistance supplémentaire, veuillez nous contacter à l’adresse suivante : snowconvert-support@snowflake.com