V minulosti jsem měl podobné problémy. Pak jsem došel k závěru, že v zásadě jsou db odkazy Oracle "rozbité" pro cokoli, jen ne pro jednoduché typy SQL (zejména UDT, CLOBS mohou mít problémy, XMLType také). Pokud se vám podaří zprovoznit řešení OID, přeji vám hodně štěstí.
Řešením, ke kterému jsem se uchýlil, bylo použití procedury Java Stored namísto DB Link.
Charakteristika Java Stored Procedure:
- Umí vrátit „bohatou sadu typů“, téměř všechny složité typy (UDT, tabulky/pole/varrays), viz Online dokumentace Oracle pro detaily. Oracle odvádí mnohem lepší práci při řazení složitých (nebo bohatých) typů z Java než z DBLink.
- Uložená Java může získat „výchozí připojení“ (běží ve stejné relaci jako připojení SQL k databázi – žádné problémy s autentizací).
- Uložená Java volá proces PL/SQL na vzdálené DB a vrstva Java JDBC provádí zařazování ze vzdálené DB.
- Uložená Java sbalí výsledek a vrátí výsledky do vrstvy SQL nebo PL/SQL.
Je to trochu práce, ale pokud máte trochu Java, měli byste být schopni „vyjmout a vložit“ řešení dohromady z dokumentace a ukázky Oracle.
Doufám, že to pomůže.