Вызов функции оракула из C # - PullRequest
0 голосов
/ 27 августа 2009

У меня есть функция Oracle GetEmployeeDetails, которая сохраняет все данные сотрудника во временную таблицу TempEmployeeDetails.

Мне нужно вызвать функцию, а затем запрос на выборку во временной таблице. Вызов функции завершается успешно, но запрос select вызывает следующую ошибку.

"НАЧАЛО: Вывод: = MyPackage.GetEmployeeDetails (" + ": EmployeeId,"); SELECT * FROM TempEmployeeDetails; END; "

Приведенный выше запрос дает мне эту ошибку:

ORA-06550: строка 1, столбец 98:

PLS-00428: в этом операторе SELECT ожидается предложение INTO

1 Ответ

1 голос
/ 27 августа 2009

Я думаю, что вы должны отделить запрос от вызова функции, если вы используете 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...
}
...