0

我正在尝试从另一台服务器上的队列中出列。我无法使用传播将其发送到需要数据的服务器。如果我在出队选项中的队列名称中放置一个 dblink,则会出现错误。

Error at line 9
ORA-25200: invalid value prim_queues.prim_trade_q@prim_dbln, QUEUE_NAME should be [SCHEMA.]NAME
ORA-06512: at "SYS.DBMS_AQ", line 619
ORA-06512: at "PSINET_AQ.AQ_INBOUND_TRADES_PKG", line 20
ORA-06512: at line 10

所以我猜这是不可能的。

相反,我会将 DEQUEUE 与队列一起放在服务器上的一个包中,然后通过链接调用该包。

这是正确的吗?

编辑:

Igor 提到使用动态 SQL,但我在服务器上放了一个包和队列。这也是在同一侧解析的。然后问题变成出队对象仅存在于该队列的服务器上。即使我们在对面有一个相同的。

4

1 回答 1

1

您可以使用 DB 链接为动态 SQL(或匿名 PL/SQL 块)调用远程版本的 DBMS_SQL,这意味着该语句在远程数据库中被解析,但作为“本地”语句。

开始 dbms_sql.parse@dblink(...); 结尾;

于 2008-12-17T22:35:52.010 回答