Извикване на функция на оракул от C#

Имам функция на Oracle GetEmployeeDetails, която записва всички подробности за служителите във временна таблица TempEmployeeDetails table.

Трябва да извикам функцията, последвана от заявка за избор на временната таблица. Извикването на функцията е успешно, но заявката за избор извежда следната грешка.

"BEGIN :Output := MyPackage.GetEmployeeDetails(" + ":EmployeeId,"); ИЗБЕРЕТЕ * ОТ TempEmployeeDetails; КРАЙ;"

Горната заявка ми дава тази грешка:

ORA-06550: ред 1, колона 98:

PLS-00428: очаква се клауза INTO в този оператор SELECT


person Hemanshu Bhojak    schedule 27.08.2009    source източник


Отговори (1)


Мисля, че трябва да отделите заявката от извикването на функцията, ако използвате OracleClient, така че кодът вероятно чрез:

OracleCommand cmd = new OracleCommand("GetEmployeeDetails", conn);
cmd.CommandType = CommandType.StoredProcedure;


par = new OracleParameter("EmployeeId", OracleType.int32);
par.Value = EmployeeId;
par.Direction = ParameterDirection.Input;
cmd.Parameters.Add(par);

cmd.ExecuteNonQuery();

сега, за да получите данните от tempEmployeeDetails, направете друга заявка като следното:

OracleCommand cmd = new OracleCommand("SELECT * FROM TempEmployeeDetails", conn);
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
   //do what you want...
}
person Wael Dalloul    schedule 27.08.2009