Bonjour,

J'ai une procédure stockée dans laquelle j'utilise Execute immediate :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
 
lv_sql_stmt := 'SELECT nsiret FROM dpa_marche_hist_acompte WHERE idenos = :1 ';
IF Ora_nomht1 IS NULL THEN
   lv_where1 := ' AND nomht1 IS NULL';
ELSE
   lv_where1 := ' AND nomht1 = :2';
END IF;
IF Ora_nomhl1 IS NULL THEN
   lv_where2 := ' AND nomhl1 IS NULL';
ELSE
  lv_where2 := ' AND nomhl1 = :3';
END IF;
IF Ora_nstra IS NULL THEN
  lv_where3 := ' AND nstra IS NULL';
ELSE
  lv_where3 := ' AND nstra = :4';
END IF;
IF Ora_eaetex IS NULL THEN
 lv_where4 := ' AND eaetex IS NULL';
ELSE
 lv_where4 := ' AND eaetex = :5';
END IF;
IF Ora_dexemm IS NULL THEN
 lv_where5 := ' AND dexemm IS NULL;';
ELSE
  lv_where5 := ' AND dexemm = :6;';
END IF;
lv_sql_stmt := lv_sql_stmt||lv_where1||lv_where2||lv_where3||lv_where4||lv_where5;
 
EXECUTE IMMEDIATE lv_sql_stmt USING Ora_idenos,Ora_nomht1,Ora_nomhl1,Ora_nstra,Ora_eaetex,Ora_dexemm RETURNING lv_nsiret;
Je souhaite récupérer la valeur de nsiret dans ma variable lv_nsiret.
Est-ce que la syntaxe de mon execute immediate est correcte?
J'ai le message d'erreur suivant :
LINE/COL ERROR
-------- -------------------------------------------------------------
134/115 PLS-00103: Symbole "LV_NSIRET" rencontrÚ Ó la place d'un des
symboles suivants :
into
Symbole "into" a ÚtÚ substituÚ Ó "LV_NSIRET" pour continuer.