Oracle : lire un CLOB à travers un dblink

ORA-22992 : impossible d’utiliser les pointeurs de LOB sélectionnés dans les tables distantes

erreur Oracle ORA-22992

Un bug Oracle (366122.1) qui traine depuis des années et toujours pas résolu en Oracle 11.

Une simple requête sur une table distante à travers un dbLink :

select * from prod.data_clients@DBLINK_PROD;

renvoie le message suivant : ORA-22992: impossible d’utiliser les pointeurs de LOB sélectionnés dans des tables distantes

Ce message Indique simplement que la table distante contient des données du type CLOB (type de donnée qui peut contenir jusqu’à 4Go de données).

Contourner ce bug pour lire les CLOBs à distance

Les solutions ne sont pas très élégantes.
solution 1 : créer une table

create table TMP_READ_CLOB
as select * from prod.data_clients@DBLINK_PROD;

solution 2 : pour une seule colonne, utiliser un select de select

SELECT
(select champ from prod.data_clients@DBLINK_PROD)
FROM DUAL;

Je n’ai pas trouvé mieux pour contourner cette limitation. Ce bug est d’autant plus gênant qu’à chaque fois qu’on va lire une table distante dans TOAD, on aura ce message d’erreur ORA-22992, ce qui est vraiment pénible à la longue ; à moins que ce bug Oracle soit géré dans les versions ultérieures à TOAD 9.5 ?
Et vous, comment faites-vous pour gérer lire les CLOBs à travers un dbLink ?

[wysija_form id= »2″]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *