SnowConvert AI - Oracle - DML STATEMENTS

Description

Les extensions d’instruction DML diffèrent des instructions normales DML car elles peuvent utiliser des éléments PL/SQL tels que des collections et des enregistrements. Jusqu’à présent, certains de ces éléments n’étaient pas pris en charge par Snowflake Scripting. Si une instruction n’est pas prise en charge, une EWI sera ajoutée lors de la traduction. Les autres instructions DML seront traduites comme si elles ne se trouvaient pas à l’intérieur d’une procédure.

Extension de l’instruction INSERT

Référence de traduction pour convertir des extensions d’instruction Oracle INSERT vers Snowflake Scripting

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

L’extension PL/SQL de l’instruction SQL INSERT vous permet de spécifier un nom d’enregistrement dans la clause values_clause de l’instruction single_table_insert au lieu de spécifier une liste de colonnes dans la clause insert_into_clause. (Référence linguistique Oracle PL/SQL Extension d’instruction INSERT)

Snowflake INSERT INTO diffère de Snowflake Scripting en ce qui concerne les contraintes sur les variables ; les noms doivent être précédés de deux points « : » afin de lier la valeur des variables.

Recommandations

Note

Ce code a été exécuté pour une meilleure compréhension des exemples :

Oracle

CREATE TABLE numbers_table(num integer, word varchar2(20));
Copy
Snowflake
CREATE OR REPLACE TABLE PUBLIC.numbers_table (num integer,
word VARCHAR(20));
Copy

Cas simple d’extension d’instruction INSERT

Oracle
CREATE OR REPLACE PROCEDURE proc_insert_statement
AS
number_variable integer := 10;
word_variable varchar2(20) := 'ten';
BEGIN 
	INSERT INTO numbers_table VALUES(number_variable, word_variable);	
	INSERT INTO numbers_table VALUES(11, 'eleven');	
END;

CALL proc_insert_statement();
SELECT * FROM numbers_table ;
Copy
Résultat

NUM

WORD

10

dix

11

onze

Exécution de scripts Snowflake
CREATE OR REPLACE PROCEDURE proc_insert_statement ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
	DECLARE
		number_variable integer := 10;
		word_variable VARCHAR(20) := 'ten';
	BEGIN
		INSERT INTO numbers_table
		VALUES(:number_variable, :word_variable);
		INSERT INTO numbers_table
		VALUES(11, 'eleven');
	END;
$$;

CALL proc_insert_statement();

SELECT * FROM
	numbers_table;
Copy
Résultat

NUM

WORD

10

dix

11

onze

Problèmes connus

1. Records are not supported by Snowflake Scripting

Étant donné que les enregistrements ne sont pas pris en charge par Snowflake Scripting, au lieu d’utiliser la clause VALUES record, il est nécessaire de la transformer en clause SELECT et de scinder les colonnes de l’enregistrement. Pour plus d’informations, consultez la section Définition du type d’enregistrement.

Instruction MERGE

Référence de traduction pour convertir l’instruction Oracle MERGE en instruction Snowflake Scripting

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

L’instruction MERGE est utilisée pour sélectionner des lignes à partir d’une ou plusieurs sources pour la mise à jour ou l’insertion dans une table ou une vue. Il est possible de spécifier des conditions pour déterminer s’il faut mettre à jour ou insérer dans la table ou la vue cible. Cette instruction est un moyen pratique de combiner plusieurs opérations. Cela permet d’éviter plusieurs instructions INSERT, UPDATE et DELETE DML.MERGE est une instruction déterministe. Il n’est pas possible de mettre à jour la même ligne de la table cible plusieurs fois dans la même Instruction MERGE. (Référence linguistique Oracle PL/SQL Instruction MERGE).

Syntaxe MERGE Oracle

MERGE [ hint ]
   INTO [ schema. ] { table | view } [ t_alias ]
   USING { [ schema. ] { table | view }
         | ( subquery )
         } [ t_alias ]
   ON ( condition )
   [ merge_update_clause ]
   [ merge_insert_clause ]
   [ error_logging_clause ] ;

merge_update_clause := WHEN MATCHED THEN
UPDATE SET column = { expr | DEFAULT }
           [, column = { expr | DEFAULT } ]...
[ where_clause ]
[ DELETE where_clause ]

merge_insert_clause := WHEN NOT MATCHED THEN
INSERT [ (column [, column ]...) ]
VALUES ({ expr | DEFAULT }
          [, { expr | DEFAULT } ]...
       )
[ where_clause ]

error_logging_clause := LOG ERRORS 
  [ INTO [schema.] table ]
  [ (simple_expression) ]
  [ REJECT LIMIT { integer | UNLIMITED } ]

where_clause := WHERE condition
Copy
Syntaxe MERGE Snowflake Scripting
MERGE INTO <target_table> USING <source> ON <join_expr> 
{ matchedClause | notMatchedClause } [ ... ]

matchedClause ::= WHEN MATCHED [ AND <case_predicate> ] 
THEN { UPDATE SET <col_name> = <expr> [ , <col_name2> = <expr2> ... ] | DELETE } [ ... ]

notMatchedClause ::= WHEN NOT MATCHED [ AND <case_predicate> ] 
THEN INSERT [ ( <col_name> [ , ... ] ) ] VALUES ( <expr> [ , ... ] )
Copy

Modèles d’échantillons de sources

Exemple de données auxiliaires

Note

Ce code a été exécuté pour une meilleure compréhension des exemples :

Oracle
CREATE TABLE people_source (
    person_id INTEGER NOT NULL PRIMARY KEY,
    first_name VARCHAR2(20) NOT NULL,
    last_name VARCHAR2(20) NOT NULL,
    title VARCHAR2(10) NOT NULL
);

CREATE TABLE people_target (
    person_id INTEGER NOT NULL PRIMARY KEY,
    first_name VARCHAR2(20) NOT NULL,
    last_name VARCHAR2(20) NOT NULL,
    title VARCHAR2(10) NOT NULL
);

CREATE TABLE bonuses (
    employee_id NUMBER,
    bonus NUMBER DEFAULT 100
);

INSERT INTO people_target
VALUES (1, 'John', 'Smith', 'Mr');

INSERT INTO people_target
VALUES (2, 'alice', 'jones', 'Mrs');

INSERT INTO people_source
VALUES (2, 'Alice', 'Jones', 'Mrs.');

INSERT INTO people_source
VALUES (3, 'Jane', 'Doe', 'Miss');

INSERT INTO people_source
VALUES (4, 'Dave', 'Brown', 'Mr');

INSERT INTO
    bonuses(employee_id) (
        SELECT
            e.employee_id
        FROM
            hr.employees e,
            oe.orders o
        WHERE
            e.employee_id = o.sales_rep_id
        GROUP BY
            e.employee_id
    );
Copy
Snowflake
CREATE OR REPLACE TABLE people_source (
    person_id INTEGER NOT NULL PRIMARY KEY,
    first_name VARCHAR(20) NOT NULL,
    last_name VARCHAR(20) NOT NULL,
    title VARCHAR(10) NOT NULL
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

CREATE OR REPLACE TABLE people_target (
    person_id INTEGER NOT NULL PRIMARY KEY,
    first_name VARCHAR(20) NOT NULL,
    last_name VARCHAR(20) NOT NULL,
    title VARCHAR(10) NOT NULL
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

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

INSERT INTO people_target
VALUES (1, 'John', 'Smith', 'Mr');

INSERT INTO people_target
VALUES (2, 'alice', 'jones', 'Mrs');

INSERT INTO people_source
VALUES (2, 'Alice', 'Jones', 'Mrs.');

INSERT INTO people_source
VALUES (3, 'Jane', 'Doe', 'Miss');

INSERT INTO people_source
VALUES (4, 'Dave', 'Brown', 'Mr');

INSERT INTO bonuses(employee_id) (
    SELECT
        e.employee_id
    FROM
        hr.employees e,
        oe.orders o
    WHERE
        e.employee_id = o.sales_rep_id
    GROUP BY
        e.employee_id
);
Copy

Cas simple d’instruction MERGE

Oracle
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
    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
    );

SELECT * FROM people_target;
Copy
Résultat

PERSON_ID

FIRST_NAME

LAST_NAME

TITLE

1

John

Smith

Mr

2

Alice

Jones

Mrs.

3

Jane

Doe

Miss

4

David

Brown

Mr

Snowflake
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
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
    );

SELECT * FROM
    people_target;
Copy
Résultat

PERSON_ID

FIRST_NAME

LAST_NAME

TITLE

1

John

Smith

Mr

2

Alice

Jones

Mrs.

3

Jane

Doe

Miss

4

David

Brown

Mr

Instruction MERGE avec DELETE et clause where

Afin de trouver une équivalence entre l’instruction DELETE et la clause where, il est nécessaire de réorganiser et de mettre en œuvre certains changements dans l’instruction de fusion Snowflake.

Modification requise :
  • Remplacez la clause Oracle DELETE where_clause par une nouvelle clause Snowflake matchedClause avec l’instruction AND predicate

  • Remplacez la where_clause de Oracle merge_insert_clause par une instruction AND predicate dans Snowflake notMatchedClause

Oracle
MERGE INTO bonuses D USING (
    SELECT
        employee_id,
        salary,
        department_id
    FROM
        hr.employees
    WHERE
        department_id = 80
) S ON (D.employee_id = S.employee_id)
WHEN MATCHED THEN
UPDATE
SET
    D.bonus = D.bonus + S.salary *.01 DELETE
WHERE
    (S.salary > 8000)
    WHEN NOT MATCHED THEN
INSERT
    (D.employee_id, D.bonus)
VALUES
    (S.employee_id, S.salary *.01)
WHERE
    (S.salary <= 8000);

SELECT * FROM bonuses ORDER BY employee_id;
Copy
Résultat

EMPLOYEE_ID

BONUS

153

180

154

175

155

170

159

180

160

175

161

170

164

72

165

68

166

64

167

62

171

74

172

73

173

61

179

62

Snowflake
--** SSC-FDM-OR0018 - SNOWFLAKE MERGE STATEMENT MAY HAVE SOME FUNCTIONAL DIFFERENCES COMPARED TO ORACLE **
MERGE INTO bonuses D USING (
 SELECT
     employee_id,
     salary,
     department_id
 FROM
     hr.employees
 WHERE
     department_id = 80) S ON (D.employee_id = S.employee_id)
    WHEN MATCHED AND
    (S.salary > 8000) THEN
 DELETE
    WHEN MATCHED THEN
 UPDATE SET
    D.bonus = D.bonus + S.salary *.01
    WHEN NOT MATCHED AND
    (S.salary <= 8000) THEN
 INSERT
 (D.employee_id, D.bonus)
VALUES
 (S.employee_id, S.salary *.01);

SELECT * FROM
bonuses
ORDER BY employee_id;
Copy
Résultat

EMPLOYEE_ID

BONUS

153

180

154

175

155

170

159

180

160

175

161

170

164

72

165

68

166

64

167

62

171

74

172

73

173

61

179

62

Avertissement

Dans certains cas, les modifications appliquées peuvent ne pas fonctionner comme prévu, comme dans l’exemple suivant :

Oracle
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';

SELECT * FROM people_target;
Copy
Résultat

PERSON_ID

FIRST_NAME

LAST_NAME

TITLE

1

John

Smith

Mr

4

David

Brown

Mr

Snowflake
--** SSC-FDM-OR0018 - SNOWFLAKE MERGE STATEMENT MAY HAVE SOME FUNCTIONAL DIFFERENCES COMPARED TO ORACLE **
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
        );


SELECT * FROM
        people_target;
Copy
Résultat

PERSON_ID

FIRST_NAME

LAST_NAME

TITLE

1

John

Smith

Mr

2

Alice

Jones

Mrs.

4

David

Brown

Mr

Problèmes connus

1. Oracle’s error_logging_clause is not supported

Il n’y a pas d’équivalent pour la clause de journalisation des erreurs dans Snowflake Scripting.

2. Changed applied do not work as expected

Parfois, les modifications appliquées pour obtenir l’équivalence fonctionnelle entre l’instruction de fusion d’Oracle et celle de Snowflake ne fonctionnent pas comme prévu.

EWIs connexes

  1. SSC-FDM-0006: La colonne de type nombre peut ne pas se comporter de la même manière dans Snowflake.

  2. SSC-FDM-OR0018: L’instruction de fusion peut ne pas fonctionner comme prévu.

Instruction SELECT INTO

Référence de traduction pour convertir Oracle SELECT INTO en instruction Snowflake Scripting

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

L’instruction SELECT INTO récupère des valeurs dans une ou plusieurs tables de la base de données (comme le fait l’instruction SQL SELECT) et les stocke dans des variables (ce que ne fait pas l’instruction SQL SELECT). (Référence linguistique Oracle PL/SQL Instruction SELECT INTO)

Syntaxe SELECT INTO Oracle

SELECT [ { DISTINCT | UNIQUE } | ALL ] select_list
    { into_clause | bulk_collect_into_clause } FROM rest-of-statement ;
Copy
Syntaxe de clause Into Oracle
INTO { variable [, variable ]... | record )
Copy
Syntaxe de BULK COLLECT (collecte en masse) Oracle
BULK COLLECT INTO { collection | :host_array }
  [, { collection | :host_array } ]...
Copy
Syntaxe SELECT INTO Snowflake Scripting
SELECT [ { ALL | DISTINCT } ]
    {
          [{<object_name>|<alias>}.]*
        | [{<object_name>|<alias>}.]<col_name>
        | [{<object_name>|<alias>}.]$<col_position>
        | <expr>
        [ [ AS ] <col_alias> ]
    }
    [ , ... ]
    INTO :<variable> [, :<variable> ... ]
    [...]
Copy

Modèles d’échantillons de sources

Exemple de données auxiliaires

Note

Ce code a été exécuté pour une meilleure compréhension des exemples :

Oracle
CREATE TABLE numbers_table(num integer, word varchar2(20));
INSERT INTO numbers_table VALUES (1, 'one');
CREATE TABLE aux_numbers_table(aux_num integer, aux_word varchar2(20));
Copy
Snowflake
CREATE OR REPLACE TABLE numbers_table (num integer,
word VARCHAR(20))
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

INSERT INTO numbers_table
VALUES (1, 'one');

CREATE OR REPLACE TABLE aux_numbers_table (aux_num integer,
aux_word VARCHAR(20))
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;
Copy

Cas simple d’instruction SELECT INTO

Oracle
CREATE OR REPLACE PROCEDURE proc_select_into_variables
AS
number_variable integer;
word_variable varchar2(20);
BEGIN 
	SELECT * INTO number_variable, word_variable FROM numbers_table;
	INSERT INTO aux_numbers_table VALUES(number_variable, word_variable);	
END;

CALL proc_select_into_variables();
SELECT * FROM aux_numbers_table;
Copy
Résultat

AUX_NUM

AUX_WORD

1

un

Exécution de scripts Snowflake
CREATE OR REPLACE PROCEDURE proc_select_into_variables ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
	DECLARE
		number_variable integer;
		word_variable VARCHAR(20);
	BEGIN
		SELECT * INTO
			:number_variable,
			:word_variable
		FROM
			numbers_table;
		INSERT INTO aux_numbers_table
		VALUES(:number_variable, :word_variable);
	END;
$$;

CALL proc_select_into_variables();

SELECT * FROM
	aux_numbers_table;
Copy
Résultat
|AUX_NUM|AUX_WORD|
|-------|--------|
|1      |one     |


Copy

Problèmes connus

1. BULK COLLECT INTO is not supported

Snowflake Scripting ne prend pas en charge la clause BULK COLLECT INTO. Toutefois, il est possible d’utiliser ARRAY_AGG pour construire une nouvelle variable. Pour plus d’informations, consultez la [section des opérations BULK COLLECT (collection en masse)](collects-and-records.md#collecting-buk- Operations).

2. Collections and records are not supported

Snowflake Scripting ne prend pas en charge l’utilisation de collections ni d’enregistrements. Il est possible de les migrer en utilisant des types de données semi-structurées comme expliqué dans cette section.

EWIs connexes

Pas d’EWIs connexes.

Contournement pour simuler l’utilisation des enregistrements

Avertissement

Cette page est obsolète, mais a été laissée à des fins de compatibilité. Si vous souhaitez voir la section mise à jour, veuillez vous référer à Collections et enregistrements

Description

Cette section décrit comment simuler le comportement des enregistrements Oracle dans les instructions SELECT et INSERT, à l’aide de RESULTSET et CURSORS de Snowflake Scripting.

Snowflake Scripting RESULTSET et CURSOR

Syntaxe RESULTSET Snowflake
<resultset_name> RESULTSET [ DEFAULT ( <query> ) ] ;

LET <resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;

LET <resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;
Copy

Recommandations

Note

Pour les exemples suivants, ce code a été exécuté pour une meilleure compréhension des exemples :

Oracle

CREATE TABLE numbers_table(num integer, word varchar2(20));
INSERT INTO numbers_table VALUES (1, 'one');
CREATE TABLE aux_numbers_table(aux_num integer, aux_word varchar2(20));
Copy
Snowflake
CREATE OR REPLACE TABLE numbers_table (num integer,
word VARCHAR(20))
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;

INSERT INTO numbers_table
VALUES (1, 'one');

CREATE OR REPLACE TABLE aux_numbers_table (aux_num integer,
aux_word VARCHAR(20))
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
;
Copy

Utilisation de RESULTSET et de curseurs au lieu d’enregistrements

Oracle
CREATE OR REPLACE PROCEDURE proc_insert_select_resultset
AS
TYPE number_record_definition IS RECORD(
	rec_num numbers_table.num%type,
	rec_word numbers_table.word%type
);
number_record number_record_definition;
BEGIN 
	SELECT * INTO number_record FROM numbers_table;	
	INSERT INTO aux_numbers_table VALUES number_record;
END;

CALL proc_insert_select_resultset();
SELECT * FROM aux_numbers_table;
Copy
Résultat

AUX_NUM

AUX_WORD

1

un

Snowflake
CREATE OR REPLACE PROCEDURE proc_insert_select_resultset ()
RETURNS VARCHAR
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
EXECUTE AS CALLER
AS
$$
	DECLARE
		!!!RESOLVE EWI!!! /*** SSC-EWI-0056 - CUSTOM TYPES ARE NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS CUSTOM TYPE WERE CHANGED TO OBJECT ***/!!!
		TYPE number_record_definition IS RECORD(
			rec_num numbers_table.num%type,
			rec_word numbers_table.word%type
		);
		number_record OBJECT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - number_record_definition DATA TYPE CONVERTED TO OBJECT ***/!!! := OBJECT_CONSTRUCT();
	BEGIN
		SELECT
			OBJECT_CONSTRUCT( *) INTO
			:number_record
		FROM
			numbers_table;
		INSERT INTO aux_numbers_table
		SELECT
			:number_record:REC_NUM,
			:number_record:REC_WORD;
	END;
$$;

CALL proc_insert_select_resultset();

SELECT * FROM
	aux_numbers_table;
Copy

Utilisation du curseur

CREATE OR REPLACE PROCEDURE PUBLIC.proc_select_into()
RETURNS INTEGER
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
AS
$$
DECLARE
    NUMBER_VARIABLE INTEGER;
    WORD_VARIABLE VARCHAR;
    NUMBER_RECORD RESULTSET;
BEGIN
    LET c2 CURSOR FOR NUMBER_RECORD;
    FOR row_variable IN c2 DO
        let var1 integer := row_variable.num;
        let var2 varchar := row_variable.word;
        INSERT INTO PUBLIC.aux_numbers_table VALUES(:var1, :var2);
    END FOR;
end;
$$;
Copy
Résultat

AUX_NUM

AUX_WORD

1

un

Problèmes connus

1. Limitation in the use of RESULTSET

RESULTSET est très limité dans son utilisation. Si l’instruction table(result_scan(last_query_id())), elle doit être utilisée juste après l’exécution de la requête RESULTSET. Pour plus d’informations, consultez ce lien.

EWIs connexes

  1. SSC-EWI-0036 : Type de données converti en un autre type de données.

  2. SSC-EWI-0056 : Create table n’est pas pris en charge.