Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verweisen auf benutzerdefinierte Oracle-Typen über DBLINK?

Ich habe die Oracle-Dokumentation gelesen und es ist nicht sehr schwierig.

Sie müssen Ihren Typdefinitionen in beiden Datenbanken eine OID hinzufügen.

Sie können eine GUID als OID verwenden.

SELECT SYS_OP_GUID() FROM DUAL; 

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

Erstellen Sie nun Ihren UDT in beiden Datenbanken mit dem GLEICHEN OID.

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

Erstellen Sie nun eine Tabelle:

create table testlink 
( name testlinktype);

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

commit;

Nun können Sie aus der Tabelle über den dblink in der anderen Datenbank auswählen:

select * from [email protected]_ora10;

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

Wenn Sie beim ersten Versuch, über den dblink auszuwählen, den Fehler ORA-21700 erhalten, verbinden Sie sich einfach erneut.