Ik heb de Oracle-documentatie gelezen en het is niet erg moeilijk.
U moet een OID toevoegen aan uw typedefinities in beide databases.
U kunt een GUID als OID gebruiken.
SELECT SYS_OP_GUID() FROM DUAL;
SYS_OP_GUID()
--------------------------------
AE34B912631948F0B274D778A29F6C8C
Maak nu uw UDT in beide databases met de SAME OID.
create type testlinktype oid 'AE34B912631948F0B274D778A29F6C8C' as object
( v1 varchar2(10) , v2 varchar2(20) );
/
Maak nu een tabel:
create table testlink
( name testlinktype);
insert into testlink values (testlinktype ('RC','AB'));
commit;
Nu kunt u uit de tabel selecteren via de dblink in de andere database:
select * from [email protected]_ora10;
NAME(V1, V2)
--------------------------
TESTLINKTYPE('RC', 'AB')
Als u de fout ORA-21700 krijgt wanneer u de eerste keer probeert te selecteren via de dblink, maakt u gewoon opnieuw verbinding.