系统包调用问题

[复制链接]
查看11 | 回复0 | 2007-9-26 18:42:10 | 显示全部楼层 |阅读模式
DBMS_DDL系统包中ALTER_COMPILE和ANALYZE_OBJECT
我在同一用户下调用这两个包,可是前都失败,后者成功;我在SYS用户下执行对ALTER_COMPILE 调用(与前一用户同样语句)却可以成功,这是为什么呢。
------------------------------------------------------
在BLQT用户下执行如下语句
SQL> EXEC DBMS_DDL.alter_compile(\'PROCEDURE\',\'BLQT\',\'PROC1\');
begin DBMS_DDL.alter_compile(\'PROCEDURE\',\'WYJ\',\'PROC1\'); end;
ORA-04047: 指定的对象与指定的标志不兼容
ORA-06512: 在\"SYS.DBMS_UTILITY\", line 114
ORA-06512: 在\"SYS.DBMS_DDL\", line 86
ORA-06512: 在line 1
SQL> EXEC dbms_ddl.analyze_object(\'TABLE\',\'BLQT\',\'C\',\'COMPUTE\');
PL/SQL procedure successfully completed
在SYS用户下执行如下语句
SQL> exec dbms_ddl.alter_compile(\'PROCEDURE\',\'WYJ\',\'DROP_TABLE\');
PL/SQL procedure successfully completed
---------------------------------------------------------------------------------
BLQT用户拥有角色如下
SQL> select GRANTEE,GRANTED_ROLE from dba_role_privs where grantee=\'BLQT\';
GRANTEE
GRANTED_ROLE
------------------------------ ------------------------------
BLQT
DBA
BLQT
CONNECT
BLQT
RESOURCE
BLQT
EXP_FULL_DATABASE
BLQT
IMP_FULL_DATABASE

SQL> select * from user_sys_privs;
USERNAME
PRIVILEGE
ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
WYJ
ALTER ANY PROCEDURE
NO
WYJ
UNLIMITED TABLESPACE
YES
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行