似乎需要一些帮助。我正在尝试根据以下脚本基于对象类型构建一些队列表;
0。
...
GRANT EXECUTE ON dbms_aq TO sch_utl
/
GRANT EXECUTE ON dbms_aqadm TO sch_utl
/
GRANT aq_administrator_role TO sch_utl
/
BEGIN
DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(privilege => 'MANAGE_ANY'
,grantee => 'sch_utl'
,admin_option => FALSE);
END;
/
1.
create or replace type o_utl_q_log as object
(/*some variables*/
constructor function o_utl_q_log return self as result,
member procedure queue_enqueue,
static function queue_dequeue(p_wait number default 0)
return o_utl_q_log,
);
2.
create or replace type body o_utl_q_log
(
...
);
类型及其主体编译没有错误,问题发生在;
3.
begin
dbms_aqadm.create_queue_table( queue_table => 't_utl_q_log'
, queue_payload_type => 'o_utl_q_log'
, sort_list => 'PRIORITY,ENQ_TIME'
, storage_clause => 'tablespace TS_UTL_Q_TABLE_LOG'
, comment => 'Log queue table') ;
end;
我收到了这个错误描述;
ORA-38818:非法引用已编辑对象 SCH_UTL.O_UTL_Q_LOG
ORA-06512:在“SYS.DBMS_AQADM”第 81 行
ORA-06512:在第 2 行
38818. 00000 - “非法引用已编辑对象 %s.%s”
*原因: 试图违反“非编辑对象
可能不依赖于已编辑对象”的规则。
以防万一,我正在开发 XE 11g R2。
非常感谢任何人的帮助!