2009-08-27 189 views
0

我有一個Oracle函數GetEmployeeDetails,它將所有員工詳細信息保存到臨時表TempEmployeeDetails表中。從C調用oracle函數#

我必須調用臨時表上的select查詢後面的函數。函數調用成功,但select查詢會引發以下錯誤。 「BEGIN:輸出:= MyPackage.GetEmployeeDetails(」 +「:EmployeeId,」); SELECT * FROM TempEmployeeDetails; END;」

上面的查詢是給我這個錯誤:

ORA-06550:第1行,列98:

PLS-00428:INTO子句預計在SELECT語句

回答

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(); 

現在擺脫tempEmployeeDetail數據s進行另一個查詢,如下所示:

OracleCommand cmd = new OracleCommand("SELECT * FROM TempEmployeeDetails", conn); 
OracleDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    //do what you want... 
}