Tôi đã đọc Tài liệu Oracle và nó không khó lắm.
Bạn cần thêm OID vào định nghĩa kiểu của mình trong cả hai cơ sở dữ liệu.
Bạn có thể sử dụng GUID làm OID.
SELECT SYS_OP_GUID() FROM DUAL;
SYS_OP_GUID()
--------------------------------
AE34B912631948F0B274D778A29F6C8C
Bây giờ, hãy tạo UDT của bạn trong cả hai cơ sở dữ liệu với CÙNG OID.
create type testlinktype oid 'AE34B912631948F0B274D778A29F6C8C' as object
( v1 varchar2(10) , v2 varchar2(20) );
/
Bây giờ, hãy tạo một bảng:
create table testlink
( name testlinktype);
insert into testlink values (testlinktype ('RC','AB'));
commit;
Bây giờ bạn có thể chọn từ bảng thông qua dblink trong cơ sở dữ liệu khác:
select * from [email protected]_ora10;
NAME(V1, V2)
--------------------------
TESTLINKTYPE('RC', 'AB')
Nếu bạn gặp lỗi ORA-21700 khi bạn cố gắng chọn qua dblink lần đầu tiên, chỉ cần kết nối lại.