Вызов функции оракула из C#

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

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

"BEGIN: Output: = MyPackage.GetEmployeeDetails (" + ": EmployeeId,"); SELECT * FROM TempEmployeeDetails; КОНЕЦ;"

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

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

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

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...
}
Другие вопросы по тегам