W przeszłości miałem podobne problemy. Potem doszedłem do wniosku, że zasadniczo łącza do bazy danych Oracle są "zepsute" dla czegokolwiek poza prostymi typami SQL (zwłaszcza UDT, CLOBS może mieć problemy, XMLType również). Jeśli uda Ci się uruchomić rozwiązanie OID, życzę powodzenia.
Rozwiązaniem, do którego się uciekłem, było użycie procedury Java Stored zamiast DB Link.
Charakterystyka procedury składowanej Java:
- Może zwrócić „bogaty zestaw typów”, prawie wszystkie typy złożone (UDT, tabele/tablice/warrays) patrz Dokumentacja online Oracle dla szczegółów. Oracle znacznie lepiej radzi sobie z porządkowaniem złożonych (lub bogatych) typów z javy niż z DBLink.
- Przechowywana Java może uzyskać „połączenie domyślne” (działa w tej samej sesji, co połączenie SQL z bazą danych – bez problemów z uwierzytelnianiem).
- Przechowywana Java wywołuje procedurę PL/SQL w zdalnej bazie danych, a warstwa JDBC java zajmuje się kierowaniem ze zdalnej bazy danych.
- Przechowywane pakiety Java do wyniku i zwracają wyniki do warstwy SQL lub PL/SQL.
To trochę pracy, ale jeśli masz trochę javy, powinieneś być w stanie "wyciąć i wkleić" rozwiązanie razem z dokumentacji i próbki Oracle.
Mam nadzieję, że to pomoże.