从不同模式的包中查询OracleAQ视图

时间:2013-08-08 15:25:42

标签: oracle plsql oracle-aq

我有一个由架构A拥有的OracleAQ多队列队列。如Oracle文档中所述,有一些视图(schema.aq $ table_name *)用于检查队列表的状态。

我可以通过纯SQL或PL / SQL代码从另一个模式查询这些视图,但是如果此代码包装在一个包中则不能。包体拒绝使用ORA-00942进行编译:表或视图不存在

第二个模式具有所有必要的权限,因为我实际上可以从包外部查询视图。

1 个答案:

答案 0 :(得分:0)

我成功完成了以下任务:

  1. 在架构A中创建AQ表(称为MY_Q)
  2. 授予“选择”Schema B的权限到视图AQ $ MY_Q
  3. 在架构B中创建的包(称为Q_PKG),用于从AQ $ MY_Q中选择记录
  4. 在架构B中执行了Q_PKG
  5. 不确定(没有看到您的架构信息)是否存在优先级更高的私有部分,限制您的AQ视图被读取。 这个stackoverflow post显示了一些关于“显示”用户权限的信息。