2008-12-17 7 views
0

J'essaie de retirer la file d'attente d'une file d'attente sur un autre serveur. Je ne peux pas utiliser la propagation pour l'obtenir sur le serveur qui a besoin des données. Si je mets un dblink au nom de la file d'attente dans les options de file d'attente, j'obtiens une erreur.Pouvez-vous supprimer la file d'attente sur un DBLink?

Error at line 9 
ORA-25200: invalid value [email protected]_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 

Donc je suppose que ce n'est pas possible. Au lieu de cela, je vais mettre la DEQUEUE dans un paquet sur le serveur avec la file d'attente et appelez simplement ce paquet sur le lien.

Est-ce exact?

EDIT:

Igor mentionne l'utilisation de SQL dynamique, mais je l'ai mis un paquet sur le serveur avec la file d'attente. Cela aussi est analysé du même côté. Le problème devient alors l'objet dequeued existe seulement sur le serveur de cette file d'attente. Même si nous en avons un identique sur le côté opposé.

Répondre

1

Vous pouvez utiliser un lien DB pour appeler la version distante de DBMS_SQL pour un SQL dynamique (ou un bloc PL/SQL anonyme), ce qui signifie que l'instruction est analysée sur la base distante mais sous forme d'instruction locale.

begin [email protected] (...); fin;

+0

mais comment puis-je retirer l'objet? Je file un TYPE. Ne peut pas sembler obtenir un type sur un dblink. –

Questions connexes