[8i][PL/SQL] EXECUTE IMMEDIATE
Bien le bonjour à toutes et à tous.
Je me pose quelques questions relatives à EXECUTE IMMEDIATE; Mon code est le suivant :
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 31 32 33 34
| DECLARE
vRequete VARCHAR2(300);
vErrMajMaTable EXCEPTION;
BEGIN
IF(premiere condition) THEN
vRequete := 'INSERT INTO MaTable
(
MonChamp1
, MonChamp2
)
VALUES
(
'||MaVariable1||'
, '||MaVariable2||'
)';
ELSE
vRequete := 'UPDATE MaTable
SET
MonChamp1 = '||MaVariable1||'
, MonChamp2 = '||MaVariable2||'
WHERE gnagnagna ';
END IF;
EXECUTE IMMEDIATE vRequete;
IF(SQL%NOTFOUND) THEN
RAISE vErrMajMaTable;
END IF;
EXCEPTION
WHEN vErrMajMaTable THEN
FonctionQuiTraceErreur(prend en argument la requete);
blablabla;
END; |
J'ai l'erreur suivante qui pointe sur la ligne en rouge
Code:
ORA-06502 : erreur numerique ou erreur sur une valeur.
Je ne sais pas trop où est le problème puisque j'ai bien déclaré ma variable vRequete, la longueur est bonne qui plus est. :?
Bon sinon, j'ai d'autres questions concernant EXECUTE IMMEDIATE.
- Est-ce que la requete passée en paramètre doit se terminer par un ";"
- De quel type doit être cette variable ?
merci d'avance
Bahan