Bonjour,
Je suis sous oracle 10g sous windows 2003 server. Je suis confronté à un problème bien étrange :
Soit la procédure suivante :
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).
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;
Si j'exécute ma procédure loggé en system :
je me prend un ORA-01031: privilèges insuffisants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 begin EXEO_UTILS.cleangps(100,'test'); end;
si je fais afficher la requête qui devait s'éxécuter et que je la lance manuellement :
ça fonctionne parfaitement... mais vu que je veux lancer cette tache en job je veux l'encapsuler dans une procédure...
Code : Sélectionner tout - Visualiser dans une fenêtre à part delete test.pointgps where datetime < (select max(datetime)-100 from test.pointgps);
quelqu'un a une idée ?
Partager