Utilisation de chaîne dans PL/SQL
Bonjour,
Je code une procèdure stockée sous oracle en utilisant le PL/SQL et je suis confronté à un problème de chaine de carartères. En effet je fait appel à un groupe de chaines de caractàre dans un select de ma procédure en utilisant l'opérateur 'IN'. Cependant je n'arrive pas à afficher ma requête correctement. Ce qui se trouve dans la parenthèse est sensé etre entre cote.
Voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| create or replace
PROCEDURE TEST_PROC_BIS(TABLE_EIM_OU_REJET IN VARCHAR2,BATCH_NUM_INTERFACE VARCHAR2)
IS
FoundTable_1 VARCHAR(30);
var_owner VARCHAR(30);
l_query varchar2(1000);
var_nb_lignes NUMBER;
var_statut_eim_1 varchar(50):= 'IMPORTED';
var_statut_eim_2 varchar(50):= 'DUP_RECORD_EXISTS';
var_statut_eim_3 varchar(50):= 'DUP_RECORD_EXISTS_IN_EIM_TBL';
var_statut_eim_4 varchar(50):= 'MERGED';
var_statut_eim_5 varchar(50):= 'MERGED_INTO';
var_statut_eim_6 varchar(50):= 'DELETED';
var_existe_etape_eim_ou_rej EXCEPTION;
BEGIN
l_query := 'SELECT count(*) FROM ' ||TABLE_EIM_OU_REJET||'
WHERE IF_ROW_BATCH_NUM='||BATCH_NUM_INTERFACE|| ' AND IF_ROW_STAT NOT IN
('||var_statut_eim_1||','
||var_statut_eim_2||','
||var_statut_eim_3||','
||var_statut_eim_4||','
||var_statut_eim_5||','
||var_statut_eim_6||')';
--EXECUTE IMMEDIATE l_query into var_nb_lignes;
dbms_output.put_line(l_query);
EXCEPTION
WHEN var_existe_etape_eim_ou_rej THEN dbms_output.put_line('Le nom de l etape : "'||TABLE_EIM_OU_REJET||'" n''est pas valide');
END; |
J'obteniens en sortie :
Code:
1 2 3
| SELECT count(*) FROM SIEBEL.EIM_CONTACT
WHERE IF_ROW_BATCH_NUM=561212070 AND IF_ROW_STAT NOT IN
(IMPORTED,DUP_RECORD_EXISTS,DUP_RECORD_EXISTS_IN_EIM_TBL,MERGED,MERGED_INTO,DELETED) |
Donc je n'ai pas de cotes qui encadre mes chaines.(exemple 'IMPORTED','DUP_RECORD_EXISTS').
Si vous avez une idée ou des suggestions. Elles seront les bienvenues.