1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> drop user adm cascade;
Utilisateur supprime.
SQL> create user adm identified by adm quota unlimited on users;
Utilisateur cree.
SQL> grant create session, create table, create synonym, create procedure to adm ;
Autorisation de privileges (GRANT) acceptee.
SQL> connect adm/adm
Connecte.
SQL> create table t(x varchar2(10));
Table creee.
SQL> insert into t values('table adm');
1 ligne creee.
SQL> create synonym adm for t;
Synonyme cree.
SQL>
SQL> create procedure p
2 authid current_user
3 as
4 begin
5 dbms_output.put_line('adm.p');
6 end;
7 /
Procedure creee.
SQL> show errors
Pas d erreur.
SQL>
SQL> create function f return number
2 authid current_user
3 as
4 begin
5 dbms_output.put_line('adm.f');
6 return 0;
7 end;
8 /
Fonction creee.
SQL> create package pp
2 authid current_user
3 is
4 procedure p;
5 end;
6 /
Package cree.
SQL> show errors
Pas d erreur.
SQL>
SQL> create package body pp
2 is
3 procedure p
4 as
5 begin
6 dbms_output.put_line('adm.p');
7 end;
8 end;
9 /
Corps de package cree.
SQL> show errors
Pas d erreur.
SQL> grant select on t to test;
Autorisation de privileges (GRANT) acceptee.
SQL> grant execute on p to test;
Autorisation de privileges (GRANT) acceptee.
SQL> connect adm/adm
Connecte.
SQL> set serveroutput on
SQL> exec adm.p;
BEGIN adm.p; END;
*
ERREUR a la ligne 1 :
ORA-06550: Ligne 1, colonne 11 :
PLS-00302: Le composant 'P' doit etre declare
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
SQL> exec adm.pp.p;
BEGIN adm.pp.p; END;
*
ERREUR a la ligne 1 :
ORA-06550: Ligne 1, colonne 11 :
PLS-00302: Le composant 'PP' doit etre declare
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
SQL> select adm.f from dual;
F
----------
0
adm.f |
Partager