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
INSERTvous permet de spécifier un nom d’enregistrement dans la clausevalues_clausede l’instructionsingle_table_insertau lieu de spécifier une liste de colonnes dans la clauseinsert_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));
Snowflake¶
CREATE OR REPLACE TABLE PUBLIC.numbers_table (num integer,
word VARCHAR(20));
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 ;
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;
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
MERGEest 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 instructionsINSERT,UPDATEetDELETEDML.MERGEest 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 InstructionMERGE. (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
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> [ , ... ] )
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
);
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
);
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;
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;
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;
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;
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;
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;
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¶
SSC-FDM-0006: La colonne de type nombre peut ne pas se comporter de la même manière dans Snowflake.
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
SELECTINTOrécupère des valeurs dans une ou plusieurs tables de la base de données (comme le fait l’instruction SQLSELECT) et les stocke dans des variables (ce que ne fait pas l’instruction SQLSELECT). (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 ;
Syntaxe de clause Into Oracle¶
INTO { variable [, variable ]... | record )
Syntaxe de BULK COLLECT (collecte en masse) Oracle¶
BULK COLLECT INTO { collection | :host_array }
[, { collection | :host_array } ]...
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> ... ]
[...]
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));
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"}}'
;
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;
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;
Résultat¶
|AUX_NUM|AUX_WORD|
|-------|--------|
|1 |one |
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> ) ] ;
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));
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"}}'
;
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;
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;
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;
$$;
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¶
SSC-EWI-0036 : Type de données converti en un autre type de données.
SSC-EWI-0056 : Create table n’est pas pris en charge.