sql >> Database >  >> RDS >> Oracle

Verwijzen naar Oracle door de gebruiker gedefinieerde typen via DBLINK?

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.



  1. Transacties afhandelen in MySQL

  2. Breid EM Grid Control uit naar nieuwe nodes

  3. Oracle JDeveloper-fragmenten gebruiken met MySQL

  4. Een deel van een string in MySQL vervangen