Mam taka proceduer
create or replace
PACKAGE BODY asp as
procedure zapisz( wnr varchar2, windeks varchar2, ilosc numeric, wkoment varchar2 )as
czy_haslo varchar2(10);
BEGIN
if czy_haslo != null then
czy_haslo := 'empty';
end if;
END zapisz;
end asp;
problem jest z ilosc numeric bo gdy chce to wywolac w ten sposób
private int Zamow(string user, string indeks, int magazyn, int dostawa, string faktura, string komentarz, int ilosc)
{
decimal tmp = ilosc;
OleDbConnection con = new OleDbConnection(connectionstring);
OleDbCommand cmd = new OleDbCommand("asp.zapisz", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("wnr", user);
cmd.Parameters.AddWithValue("windeks", indeks);
cmd.Parameters.AddWithValue("komentarz", komentarz);
cmd.Parameters.AddWithValue("ilosc",ilosc);
//cmd.Parameters.Add("valu_e", OleDbType.Integer).Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
//int Count = (int)cmd.Parameters["valu_e"].Value;
return 0;
}
wyskaskuje mi błąd
ORA-06502: PL/SQL: błąd liczby lub wartości: błąd konwersji znaku do liczby
ORA-06512: przy linia 1
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: ORA-06502: PL/SQL: błąd liczby lub wartości: błąd konwersji znaku do liczby
ORA-06512: przy linia 1
Source Error:
Line 52: con.Open();
Line 53:
Line 54: cmd.ExecuteNonQuery();
Line 55:
Line 56: //int Count = (int)cmd.Parameters["valu_e"].Value;
gdy zmienie ilosc numeric na ilosc varchar2 i wywołuje cmd.Parameters.AddWithValue("ilosc",ilosc.ToString()); nie wywala wtedy błędu