Erreur de compilation PL/SQL
kazaki48
Messages postés
1
Statut
Membre
-
Yann -
Yann -
Bonjour,
je travail avec oracle 10g, qd je veu lister les
tables qui appartiennent à l'ulisateur MOUTOUT, le
résultat est positif :
SQL> select table_name from dba_tables where owner ='MOUTOUT';
TABLE_NAME
------------------------------
TEST
BIN$xryPUKITQwCKgpeSJNS0iw==$0
DIR_LIST
TAB_LOAD_DATA_DETAIL
TAB_LOAD_FAIL_DETAIL
BIN$m5ebfVr7QPSf+46sOp9hTA==$0
6 ligne(s) sélectionnée(s).
mais quand j'utilise la même requette dans une
procedure, ya des erreurs de compilation :
SQL> CREATE or replace PROCEDURE MOUTOUT.proc1
2 as
3 begin
4 select table_name from dba_tables where owner ='MOUTOUT';
5 end;
6 /
Avertissement : Procédure créée avec erreurs de
compilation.
je visualise les erreurs (Table inexistante !!):
SQL> show errors
Erreurs pour PROCEDURE MOUTOUT.PROC1 :
LINE/COL ERROR
-------------------------------------------------------------------------
4/1 PL/SQL: SQL Statement ignored
4/24 PL/SQL: ORA-00942: Table ou vue inexistante
SVP quelqu'un peut il me dire la cause ?
Merci d'avance.
je travail avec oracle 10g, qd je veu lister les
tables qui appartiennent à l'ulisateur MOUTOUT, le
résultat est positif :
SQL> select table_name from dba_tables where owner ='MOUTOUT';
TABLE_NAME
------------------------------
TEST
BIN$xryPUKITQwCKgpeSJNS0iw==$0
DIR_LIST
TAB_LOAD_DATA_DETAIL
TAB_LOAD_FAIL_DETAIL
BIN$m5ebfVr7QPSf+46sOp9hTA==$0
6 ligne(s) sélectionnée(s).
mais quand j'utilise la même requette dans une
procedure, ya des erreurs de compilation :
SQL> CREATE or replace PROCEDURE MOUTOUT.proc1
2 as
3 begin
4 select table_name from dba_tables where owner ='MOUTOUT';
5 end;
6 /
Avertissement : Procédure créée avec erreurs de
compilation.
je visualise les erreurs (Table inexistante !!):
SQL> show errors
Erreurs pour PROCEDURE MOUTOUT.PROC1 :
LINE/COL ERROR
-------------------------------------------------------------------------
4/1 PL/SQL: SQL Statement ignored
4/24 PL/SQL: ORA-00942: Table ou vue inexistante
SVP quelqu'un peut il me dire la cause ?
Merci d'avance.
A voir également:
- Erreur de compilation PL/SQL
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur upes 1025 - Forum Téléviseurs
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
1 réponse
Tu as probablement les droits en lecture sur cette table, mais à travers un rôle qui t'a été attribué et qui en a le droit.
Mais lors de l'exécution du code PL/SQL, les droits possédés via un rôle sont inopérants. Il faut donc que le privilège t'ait été explicitement et nominativement attribué via un ordre GRANT SELECT ON latable TO leUser.
Ceci, je viens de remarquer une autre erreur dans ton code : un select sans une clause INTO...
Mais lors de l'exécution du code PL/SQL, les droits possédés via un rôle sont inopérants. Il faut donc que le privilège t'ait été explicitement et nominativement attribué via un ordre GRANT SELECT ON latable TO leUser.
Ceci, je viens de remarquer une autre erreur dans ton code : un select sans une clause INTO...