sql >> Database teknologi >  >> RDS >> Oracle

Oracle sql-typer over dblink

Jeg har tidligere haft lignende problemer. Så kom jeg til den konklusion, at grundlæggende er Oracles db-links "brudt" for alt andet end simple SQL-typer (især UDT'er, CLOBS kan have problemer, XMLType kan også). Hvis du kan få OID-løsningen til at virke, så held og lykke til dig.

Løsningen jeg tyede til var at bruge en Java Stored procedure i stedet for DB Link.

Karakteristika for Java Stored Procedure:

  1. Kan returnere et "rigt sæt af typer", stort set alle de komplekse typer (UDT'er, tabeller/arrays/varrays) se Oracle online dokumentation for detaljer. Oracle gør et meget bedre stykke arbejde med at samle komplekse (eller rige) typer fra java end fra en DBLink.
  2. Lagret Java kan erhverve "standardforbindelsen" (kører i samme session som SQL-forbindelsen til db'en - ingen godkendelsesproblemer).
  3. Lagret Java kalder PL/SQL-proc'en på den eksterne DB, og java JDBC-laget foretager marshaling fra den eksterne DB.
  4. Lagret Java pakker resultatet og returnerer resultaterne til SQL- eller PL/SQL-laget.

Det er lidt arbejde, men hvis du har en smule java, burde du være i stand til at "klippe og indsætte" en løsning sammen fra Oracle-dokumentationen og prøven.

Jeg håber, at dette hjælper.



  1. Installer pdo til postgres Ubuntu

  2. Betinget rækkefølge efter klausul

  3. Fremmednøglebegrænsning er forkert udformet?

  4. Laravel Veltalende opdeling af forespørgsel i array