Bonjour,

Je suis sous oracle 10g sous windows 2003 server. Je suis confronté à un problème bien étrange :

Soit la procédure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?