任何人都可以提出這個函數調用有什麼問題。沒有返回變量的名稱,不確定是否有任何問題。這在pl sql中正常工作。C#Oracle函數調用
oracle function code:
FUNCTION GETSTATUS (
p_param1 in varchar2,
p_param2 in number,
p_param3 out varchar2)
return boolean
is
return true;
END GETSTATUS;
ODP.Net版本 - 32位Oraclient10201_win32
C#代碼
var cmd = new OracleCommand("tk_ccc.GETSTATUS ", connweb);
cmd.CommandType = CommandType.StoredProcedure;
cmd.BindByName = true;
cmd.Parameters.Add("Return_Value", OracleDbType.Char, 1, ParameterDirection.Output);
var prm1 = new OracleParameter("p_param1", OracleDbType.Varchar2, 20, ParameterDirection.Input) { Value = "1649983" };
cmd.Parameters.Add(prm1);
var prm2 = new OracleParameter("p_param2", OracleDbType.Int32, ParameterDirection.Input) { Value = 1 };
cmd.Parameters.Add(prm1);
var prm3 = new OracleParameter("p_param3", OracleDbType.Varchar2, 100, ParameterDirection.Output);
cmd.Parameters.Add(prm1);
var ret = cmd.ExecuteNonQuery();
錯誤消息:
ORA-06550:第1行,第7列:\ NPLS-00306:錯誤數量或類型的在調用 '的getStatus' \諾拉-06550參數:第1行,第7列:
PL/SQL:語句被忽略
由於最佳實踐功能應只返回一個值,而不是輸出參數和值。 Oracle僅在PL/SQL中具有布爾值。如果你的函數返回一個數字,它可能會工作。 – kevinsky
謝謝。但這是一個共享程序,我不能爲我編輯。 –
爲什麼要添加一個名爲''Return_Value'''的char參數? –