Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Fill DataTable con Oracle
lunedì 31 maggio 2010 - 11.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
lun 31 mag 2010 - 11:56
Ciao a tuti,
sono un "novizio" su Oracle, avendo fin qui lavorato su SQL Server.
Avrei bisogno di un consiglio su come caricare su una data table il risultato di una stored procedure
Oracle con un Fill, possibilmente mantenendo lato vb una sintassi tradizionale, uso le DbProviderFactory
e nel web.config imposto tipo di db e stringa di connessione.
Diim tbl AS New DataTable
Using obj As IDbCommand = ...
obj.CommandText = "spProva"
obj.Parameters.Add("p_imput1", ... valoreImput1)
...
obj.Parameters.Add("p_imputN", ... valoreImputN)
Fill(obj, tbl)
End Using
In SQL Server, la stored procedure restituisce semplicemente una SELECT e accetta
N parametri di input.
In Oracle invece quale sintassi dovrebbe avere "spProva"? Un esempio?
Grazie per l'attenzione,
Davide
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 31 mag 2010 - 23:28
>Ciao a tuti,
Ciao
>sono un "novizio" su Oracle, avendo fin qui lavorato su SQL Server.
>Avrei bisogno di un consiglio su come caricare su una data table
>il risultato di una stored procedure
>Oracle con un Fill, possibilmente mantenendo lato vb una sintassi
>tradizionale, uso le DbProviderFactory
>e nel web.config imposto tipo di db e stringa di connessione.
da come sembra una select non basta, leggi qui:
http://decipherinfosys.wordpress.com/2007/08/06/oracle-returning-a-recordset-from-a-stored-procedure/
>Grazie per l'attenzione,
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
gio 3 giu 2010 - 13:56
Perfetto, grazie.
Il link
http://decipherinfosys.wordpress.com/2007/08/06/oracle-returning-a-recordset-from-a-stored-procedure/
è ottimo.
Ricapitolando:
Creo su db un package dei tipi.
CREATE OR REPLACE PACKAGE TYPES AS
TYPE T_SEARCH IS RECORD (ID VARCHAR2(35), Description VARCHAR2(80), Enabled INTEGER);
TYPE C_SEARCH IS REF CURSOR RETURN T_SEARCH;
END TYPES;
Creo una stored procedure esterna al package. Con un parametro di uscita
di tipo cursore C_SEARCH.
CREATE OR REPLACE PROCEDURE sp_Prova
(
p_ID VARCHAR2,
p_OUTPUT OUT TYPES.C_SEARCH
)
IS
BEGIN
OPEN p_OUTPUT FOR
SELECT ... ;
END;
Nel vb o c# aggiungo alla chiamata della procedura un parametro di uscita
p_OUTPUT di tipo OracleClient.OracleType.Cursor e poi eseguo il fill della
tabella.
Funziona alla grande.
L'unico dubbio che ho è se sia proprio indispensabile definire un tipo di cursore
ad hoc per ogni procedura di questa forma, o se se possa definire un cursore
generico non tipizzato. Ma al momento non ne so abbastanza.
Davide
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 3 giu 2010 - 14:25
>L'unico dubbio che ho è se sia proprio indispensabile definire
>un tipo di cursore
>ad hoc per ogni procedura di questa forma, o se se possa definire
>un cursore
>generico non tipizzato. Ma al momento non ne so abbastanza.
Sinceramente conosco pochissimo questo RDBMS..
Mi sembra di capire che ci sia un tipo generico REF CURSOR:
http://www.codeproject.com/KB/database/Oracle_RefCursor_ADO_C__.aspx
Spero possa esserti di aiuto.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
gio 3 giu 2010 - 16:40
Grazie mille, funziona alla grande.
Ciao
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 3 giu 2010 - 19:31
>Grazie mille, funziona alla grande.
Evvai! buon motivo per iniziare a studiarlo dici? è da un po' che vorrei..
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !