从不同架构中的包查询Oracleq视图

从不同架构中的包查询Oracleq视图,oracle,plsql,oracle-aq,Oracle,Plsql,Oracle Aq,我有一个由模式A拥有的Oracleq多消费者队列。正如Oracle文档中所解释的,有一些视图(schema.aq$table_name*)来检查队列表的状态 我可以通过普通SQL或PL/SQL代码从另一个模式查询这些视图,但如果这些代码被包装在包中,则不能。包体拒绝使用ORA-00942进行编译:表或视图不存在 第二个架构具有所有必要的权限,因为我可以从包外部实际查询视图。我成功地执行了以下操作: 在模式A中创建了AQ表(称为MY_Q) 将架构B的“选择”权限授予视图AQ$MY_Q 在模式B中创

我有一个由模式A拥有的Oracleq多消费者队列。正如Oracle文档中所解释的,有一些视图(schema.aq$table_name*)来检查队列表的状态

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


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

我成功地执行了以下操作:

  • 在模式A中创建了AQ表(称为MY_Q)
  • 将架构B的“选择”权限授予视图AQ$MY_Q
  • 在模式B中创建的包(称为Q_PKG),它从AQ$MY_Q中选择记录
  • 在模式B中执行Q_PKG
  • 不确定(没有看到您的模式信息)是否有另一个优先级更高的priv限制您的AQ视图被读取。 这显示了有关“显示”用户权限的一些信息