Вызов функции оракула из 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...
}