Je veux créer la procédure suivante (que j'ai simplifiée pour expliquer l'erreur) dans le schéma SYSTEM (je suis connecté en tant que SYSTEM) :
Et là la compilation sort une erreur ORA-00942: table or view does not exist !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE OR REPLACE PROCEDURE P IS CURSOR C IS SELECT * FROM dba_tables; BEGIN EXECUTE IMMEDIATE 'SELECT 1 FROM DUAL'; END;
Alors qu'avec une autre vue comme all_tables par exemple ça fonctionne.
Pourtant le user SYSTEM a bien accès en lecture à la vue dba_tables (ça marche depuis une simple requête SQL)
Comment est-ce possible que SYSTEM ait accès à une vue dba depuis du code SQL mais pas du code PL/SQL ? La gestion des droits est-elle différente ? Ou bien aurais-je oublié quelque chose ?
Merci pour votre aide
Partager