Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Tipos Oracle sql sobre dblink


Já tive problemas semelhantes no passado. Então cheguei à conclusão de que fundamentalmente os links db da Oracle estão "quebrados" para qualquer coisa, menos tipos SQL simples (especialmente UDT's, CLOBS podem ter problemas, XMLType também). Se você conseguir fazer a solução OID funcionar, boa sorte para você.

A solução a que recorri foi usar um procedimento Java Stored, em vez do DB Link.

Características do Procedimento Armazenado Java:
  1. Pode retornar um "conjunto rico de tipos", praticamente todos os tipos complexos (UDTs, tables/arrays/varrays) veja Documentação on-line do Oracle para detalhes. O Oracle faz um trabalho muito melhor de empacotamento de tipos complexos (ou ricos) de java do que de um DBLink.
  2. O Java armazenado pode adquirir a "conexão padrão" (executa na mesma sessão que a conexão SQL com o banco de dados - sem problemas de autenticação).
  3. O Java armazenado chama o proc PL/SQL no banco de dados remoto, e a camada java JDBC faz o marshaling do banco de dados remoto.
  4. O Java armazenado empacota o resultado e retorna os resultados para a camada SQL ou PL/SQL.

É um pouco trabalhoso, mas se você tiver um pouco de java, poderá "recortar e colar" uma solução a partir da documentação e da amostra do Oracle.

Eu espero que isso ajude.