Domanda

Sto cercando di utilizzare un RefCursor come parametro di input su una stored procedure Oracle. L'idea è quella di selezionare un gruppo di record, dar loro da mangiare nella stored procedure e quindi la SP loop sul RefCursor di ingresso, facendo alcune operazioni ai suoi record. No, non posso selezionare i record all'interno del SP e quindi evitare di dover utilizzare la RefCursor come un tipo di ingresso.

Ho trovato un esempio su come fare questo su (questo qui sarebbe il link, ma sembra che non posso ancora li usare) la documentazione di Oracle, ma utilizza una semplice SELECT per popolare il RefCursor di ingresso; e qui sta il problema:. Ho avuto modo di popolarlo dal codice

Si veda, in codice che ho questo:

[OracleDataParameter("P_INPUT", OracleDbType.RefCursor, ParameterDirection.Input)]
private List<MiObject> cursor;

E, ho provato a popolare cursore con un List<T>, un DataTable, anche una serie di pianura MyObject, e funziona nulla. Quando provo correre i miei test ho un errore:

  

"Parametro non valido Linking"

Forse non il testo esatto, come sto traducendo dallo spagnolo, ma questo è il messaggio

Tutte le idee?

È stato utile?

Soluzione

Sono anche in contatto con Mark Williams, l'autore di questo articolo ho provato a collegare il mio post, e lui ha risposto kinly in questo modo:

" Non è un problema per me inviare e-mail; tuttavia, penso che deluderà con la mia risposta su questo.

Purtroppo si può fare ciò che si sta cercando di fare (creare un refcursor dal client di simile).

Un paio di problemi con quello sono che un refcursor si riferisce alla memoria di proprietà di Oracle sul server e Oracle non ha il concetto di oggetti client come un DataTable o un elenco NET, ecc.

Avete tutte le altre opzioni disponibili tranne usando un refcursor? "

Quindi, in pratica sono fregato, e questa domanda è chiuso. Grazie per la lettura e / o cercando di aiutare, tutti voi.

Altri suggerimenti

Dalla memoria, non c'è una classe OracleCursor da qualche parte nella biblioteca ODP.NET che funziona?

questo campione per refcursor come input per pL / SQL da Oracle TechNet.

Il clou è che l'oggetto refcursor ingresso deve essere creata da oracolo themself. Non è possibile convertire un elenco o qualsiasi altra cosa per refcursor.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top