簡體   English   中英

從C#調用oracle函數

[英]Calling an oracle function from C#

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

我必須調用該函數,然后在臨時表上進行選擇查詢。 函數調用成功,但是select查詢引發以下錯誤。

“ BEGIN:Output:= MyPackage.GetEmployeeDetails(” +“:EmployeeId,”); 選擇* FROM TempEmployeeDetails; 結束;”

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

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

PLS-00428:此SELECT語句中應有一個INTO子句

我認為如果您使用的是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...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM