0

我有一个 Oracle 函数 GetEmployeeDetails,它将所有员工详细信息保存到临时表 TempEmployeeDetails 表中。

我必须调用该函数,然后对临时表进行选择查询。函数调用成功,但选择查询抛出以下错误。

"开始:输出:= MyPackage.GetEmployeeDetails(" + ":EmployeeId,"); 选择 * 从 TempEmployeeDetails; 结尾;”

上面的查询给了我这个错误:

ORA-06550:第 1 行,第 98 列:

PLS-00428:此 SELECT 语句中应有一个 INTO 子句

4

1 回答 1

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...
}
于 2009-08-27T08:14:37.207 回答