bonjour à tous,

j'ai une procédure stokée relativement simple dans un package qui crée temporairement une vue avec les transactions autonomes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
--//extract package body BIBLIO
 
--//----------------------------------------------------------------------------------
PROCEDURE CREER_VUE(nom_vue IN USER_VIEWS.VIEW_NAME%TYPE,chSQL IN VARCHAR2)
IS
 
--//--DECLARATION DE PROCEDURE AUTONOME
pragma autonomous_transaction ; 
 
BEGIN
-- tout le code qui figure ici est dans la transaction autonome 
EXECUTE IMMEDIATE ('CREATE VIEW '||nom_vue||' AS '||chSQL) ; 
commit ; 
 
END CREER_VUE;
--//--------------------------------------------------------------------------------
//Lorsque j'appelle via SQL+ par exemple ma procédure, j'ai systèmatiquement un message
privilèges insuffisants à "TP.BIBLIO"
TP a les priviléges CONNECT,RESOURCE et DBA

--//lorsque je code comme suit l'exécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
declare
--extract
--différentes variables locales
nom_vue USER_VIEWS.VIEW_NAME%TYPE;
chSQL VARCHAR2(500);
--//--DECLARATION DE PROCEDURE AUTONOME
pragma autonomous_transaction ; 
 
BEGIN
nom_vue:='TITI_AJU3';
chSQL:='SELECT RESU_QUANTITATIF,RESU_SUP_INF,RESU_MESURE FROM RESULTATS  WHERE ESS_ID='''||id_essai||''' AND PARA_ID='''||id_parametres||''' AND MATR_ID='''||id_matrice||''' AND RESU_REPONSE=0'; 
 
 
-- tout le code qui figure ici est dans la transaction autonome 
EXECUTE IMMEDIATE ('CREATE VIEW '||nom_vue||' AS '||chSQL) ; 
commit ; 
END;
--là, bien sur çà marche !!



j'ai cherché, mais pas trouvé le privilège qu'il manque à l'utilisateur TP

un GRANT 'EXECUTE' existe t-il ?
merci de votre aide