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

Tipi di Oracle sql su dblink

Ho avuto problemi simili in passato. Quindi sono giunto alla conclusione che fondamentalmente i collegamenti db di Oracle sono "interrotti" per tutto tranne che per i semplici tipi SQL (in particolare UDT, CLOBS potrebbe avere problemi, anche XMLType). Se riesci a far funzionare la soluzione OID, buona fortuna a te.

La soluzione a cui ho fatto ricorso è stata quella di utilizzare una procedura Java Stored, invece del DB Link.

Caratteristiche della stored procedure Java:

  1. Può restituire un "ricco set di tipi", quasi tutti i tipi complessi (UDT, tabelle/array/varray) vedere Documentazione online Oracle per dettagli. Oracle fa un lavoro molto migliore nel marshalling di tipi complessi (o ricchi) da Java, che da un DBLink.
  2. Stored Java può acquisire la "connessione predefinita" (viene eseguita nella stessa sessione della connessione SQL al db - nessun problema di autenticazione).
  3. Java memorizzato chiama il proc PL/SQL sul DB remoto e il livello JDBC java esegue il marshalling dal DB remoto.
  4. Il Java memorizzato confeziona il risultato e restituisce i risultati al livello SQL o PL/SQL.

È un po' di lavoro, ma se hai un po' di java, dovresti essere in grado di "tagliare e incollare" una soluzione insieme dalla documentazione e dall'esempio di Oracle.

Spero che questo aiuti.