ORA-01031 sur procédure qui fait un simple delete executée en system
Bonjour,
Je suis sous oracle 10g sous windows 2003 server. Je suis confronté à un problème bien étrange :
Soit la procédure suivante :
Code:
1 2 3 4 5 6 7 8
| PROCEDURE CLEANGPS(NBJOURSCONSERVE IN NUMBER, NOMSCHEMA IN VARCHAR2) IS
request VARCHAR2(500);
BEGIN
request :='delete '||NOMSCHEMA||'.pointgps where datetime < (select max(datetime)-'|| nbjoursconserve||' from '||NOMSCHEMA||'.pointgps)';
execute immediate request;
/*dbms_output.put_line(request);*/
commit;
END CLEANGPS; |
un truc de base qui supprime tous les points gps d'une table qui datent de plus de x jours (datetime est du type number).
Si j'exécute ma procédure loggé en system :
Code:
1 2 3
| begin
EXEO_UTILS.cleangps(100,'test');
end; |
je me prend un ORA-01031: privilèges insuffisants
si je fais afficher la requête qui devait s'éxécuter et que je la lance manuellement :
Code:
delete test.pointgps where datetime < (select max(datetime)-100 from test.pointgps);
ça fonctionne parfaitement... mais vu que je veux lancer cette tache en job je veux l'encapsuler dans une procédure...
quelqu'un a une idée ?:calim2: