EXECUTE IMMEDIATE + Oracle 8
Bonjour,
J'ai une procédure stockée dans laquelle j'utilise Execute immediate :
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 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 :
Citation:
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.