Originariamente inviato da dops
ciao, ho creato una stored procedure su oracle che dovrebbe recuperarmi tutti i campi di una tabella:
codice:
CREATE OR REPLACE PROCEDURE "SYS"."SP_SELECT_ALL_CLIENTI" (
return_rec out SYS.CLIENTI%ROWTYPE
)
is
begin
select * into return_rec from clienti;
end;
Non sò se ho fatto bene, cmq oracle me la compila senza errori.
Fatto questo faccio la connessione al db, imposto il command.text con il nome della procedura, imposto il command.type su storedprocedure ed eseguo il comando executereader() su un datareader.
Mi vien proposto questo errore
c'è sicuramente qualche problema con i parametri.. ma mica devo impostare dei parametri anche su comando lato c# ?
Scusate l'ignoranza
se hai un parametro di output come mi sembra che sia return_rec (non conosco bene PLSQL), dovresti seguire una linea del genere (è un esempio con Userid e Password):
codice:
SqlConnection conn = new SqlConnection(stringaconnessione);
SqlCommand cmdLogin;
SqlParameter parValoreRitorno;
cmdLogin = new SqlCommand("SP_LOGIN_ID", conn);
cmdLogin.CommandType = CommandType.StoredProcedure;
parValoreRitorno = cmdLogin.Parameters.Add("intID", SqlDbType.Int);
parValoreRitorno.Direction = ParameterDirection.ReturnValue;
cmdLogin.Parameters.Add("@USERID", SqlDbType.VarChar).Value = Nomeutente;
cmdLogin.Parameters.Add("@PASSWORD", SqlDbType.VarChar).Value = Password;