Ho letto la documentazione Oracle e non è molto difficile.
È necessario aggiungere un OID alle definizioni del tipo in entrambi i database.
Puoi usare un GUID come OID.
SELECT SYS_OP_GUID() FROM DUAL;
SYS_OP_GUID()
--------------------------------
AE34B912631948F0B274D778A29F6C8C
Ora crea il tuo UDT in entrambi i database con SAME OID.
create type testlinktype oid 'AE34B912631948F0B274D778A29F6C8C' as object
( v1 varchar2(10) , v2 varchar2(20) );
/
Ora crea una tabella:
create table testlink
( name testlinktype);
insert into testlink values (testlinktype ('RC','AB'));
commit;
Ora puoi selezionare dalla tabella tramite il dblink nell'altro database:
select * from [email protected]_ora10;
NAME(V1, V2)
--------------------------
TESTLINKTYPE('RC', 'AB')
Se ricevi l'errore ORA-21700 quando provi a selezionare tramite il dblink la prima volta, ricollegati.