Hello à tous,
j'essaye de créer une procédure stockée très simple avec un CASE WHEN END dans un select et ça me met les erreurs suivantes :
Je fais Ignorer/continuer et j'aierreur 1 : SQL Error [42601]: [SQL0104] Elément syntaxique <FIN-INSTRUCTION> n'est pas correct. Eléments possibles : ;.
>
La base db2 est sur l'OS "IBM i" version 7 et j'utilise DBeaver pour requêter.erreur 2 : SQL Error [42601]: [SQL0104] Elément syntaxique P1 n'est pas correct. Eléments possibles : DECLARE.
Requêtes exemples
OK :Pas OK :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE OR REPLACE PROCEDURE MY_DB.MY_PROC () LANGUAGE SQL P1 : BEGIN INSERT INTO MY_DB_MY_TABLE1 (MY_COL1, MY_COL2) SELECT MY_COL1, 'TITI' FROM MY_DB.MY_TABLE2 END P1;J'ai essayé pas mal de choses sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE OR REPLACE PROCEDURE MY_DB.MY_PROC () LANGUAGE SQL P1 : BEGIN INSERT INTO MY_DB_MY_TABLE1 (MY_COL1, MY_COL2) SELECT MY_COL1, CASE WHEN MY_COL2 IS NULL THEN 'TOTO' ELSE MY_COL2*32 END FROM MY_DB.MY_TABLE2; END P1;
mais je pense que le END de mon CASE est pris pour le END de ma procédure...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 --#SET TERMINATOR @ ou set current sqlid = 'db2rn' # set current schema = 'db2rn' #
Thanks a lot
Partager