[英]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.