Oracle
 sql >> Base de données >  >> RDS >> Oracle

Référencer des types définis par l'utilisateur Oracle via DBLINK ?

J'ai lu la documentation Oracle et ce n'est pas très difficile.

Vous devez ajouter un OID à vos définitions de type dans les deux bases de données.

Vous pouvez utiliser un GUID comme OID.

SELECT SYS_OP_GUID() FROM DUAL; 

SYS_OP_GUID()
--------------------------------
AE34B912631948F0B274D778A29F6C8C

Créez maintenant votre UDT dans les deux bases de données avec le SAME OID.

create type testlinktype oid 'AE34B912631948F0B274D778A29F6C8C' as object
( v1 varchar2(10) , v2 varchar2(20) );
/

Créez maintenant un tableau :

create table testlink 
( name testlinktype);

insert into testlink values (testlinktype ('RC','AB'));

commit;

Vous pouvez maintenant sélectionner dans le tableau via le dblink dans l'autre base de données :

select * from [email protected]_ora10;

NAME(V1, V2)
--------------------------
TESTLINKTYPE('RC', 'AB')

Si vous obtenez l'erreur ORA-21700 lorsque vous essayez de sélectionner via le dblink la première fois, reconnectez-vous simplement.