sql >> Database >  >> RDS >> Oracle

Oracle sql-typen via dblink

Ik heb in het verleden soortgelijke problemen gehad. Toen kwam ik tot de conclusie dat Oracle's db-links fundamenteel "gebroken" zijn voor alles behalve eenvoudige SQL-types (vooral UDT's, CLOBS kunnen problemen hebben, XMLType ook). Als je de OID-oplossing kunt laten werken, veel succes.

De oplossing waartoe ik mijn toevlucht nam, was om een ​​Java Stored-procedure te gebruiken in plaats van de DB Link.

Kenmerken van de Java Stored Procedure:

  1. Kan een "rijke reeks typen" retourneren, zowat alle complexe typen (UDT's, tabellen/arrays/varrays) zie Online documentatie van Oracle voor details. Oracle kan complexe (of rijke) typen uit java veel beter rangschikken dan uit een DBLink.
  2. Opgeslagen Java kan de "standaardverbinding" verkrijgen (draait in dezelfde sessie als de SQL-verbinding met de db - geen authenticatieproblemen).
  3. Opgeslagen Java roept de PL/SQL-proc op de externe DB aan en de java JDBC-laag doet de marshaling vanaf de externe DB.
  4. Opgeslagen Java verpakt het resultaat en retourneert de resultaten naar de SQL- of PL/SQL-laag.

Het is een beetje werk, maar als je een beetje java hebt, zou je een oplossing moeten kunnen "knippen en plakken" vanuit de Oracle-documentatie en het voorbeeld.

Ik hoop dat dit helpt.



  1. Uw databases bewaken met MySQL Enterprise Monitor

  2. SQL meerdere rijen in één

  3. Waarom krijg ik Kan parameter 2 niet doorgeven door een verwijzingsfout wanneer ik bindParam gebruik met een constante waarde?

  4. Voordelen en beveiliging in de relationele databaseservice van Amazon