[PL/SQL] Execute immediate
Bonjour,
Je crée une procédure en Oracle qui contient un Execute Immediate pour le moins... classique. Or j'obtiens cette erreur à l'éxécution de la procédure :
Citation:
SQL> exec PurgerBase
BEGIN PurgerBase; END;
*
ERREUR à la ligne 1 :
ORA-00936: Expression absente
ORA-06512: à "SYSTEM.PURGERBASE", ligne 17
ORA-06512: à ligne 1
Et voici ma procédure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SQL> Create or replace procedure PurgerBase
2 AS
3 lesSimulations varchar(50);
4 lesDomaines varchar(50);
5 lePrefixe varchar(20);
6 laRequete varchar(256);
7 BEGIN
8 lesSimulations:='select SimKey from Simulation where SimDeleted=0';
9 lesDomaines:='select DomRowId from HSYS_Domaines';
10 for ligne in (select * from tsversion)
11 loop
12 lePrefixe:=ligne.TsvPrefixeChamp;
13 laRequete:='update '||ligne.TsvNomTable||' set '||lePrefixe||'Deleted=1 ';
14 laRequete:=laRequete||'where ('||lePrefixe||'Simulation>0 and ';
15 laRequete:=laRequete||lePrefixe||'Simulation not in '||lesSimulations||') or ';
16 laRequete:=laRequete||lePrefixe||'Domaine not in '||lesDomaines;
17 execute immediate laRequete;
18 end loop;
19 END;
20 / |
Que manque t'il a mon EXECUTE IMMEDIATE ?
Quel est l'équivalent Interbase Firebird et Sql Server ?
Re: [PL/SQL] Execute immediate
Citation:
Envoyé par BiMouXeTTe
Quel est l'équivalent Interbase Firebird et Sql Server ?
:)