我有一个Oracle函数GetEmployeeDetails,它将所有员工详细信息保存到临时表TempEmployeeDetails表中。
我必须调用该函数,然后在临时表上调用select查询。函数调用成功但select查询会引发以下错误。
“BEGIN:输出:= MyPackage.GetEmployeeDetails(” +“:EmployeeId,”); SELECT * FROM TempEmployeeDetails; END;“
以上查询给出了这个错误:
ORA-06550:第1行,第98栏:
PLS-00428:此SELECT语句中需要一个INTO子句
答案 0 :(得分: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...
}