Oracle
 sql >> Database >  >> RDS >> Oracle

Fare riferimento a tipi definiti dall'utente Oracle su DBLINK?

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.