[英]wrong number or types of arguments in call
我認為 output 參數代碼有問題。但我不知道如何解決這個問題。誰能告訴我代碼中的問題是什么?
錯誤:
ORA-06550:第 1 行,第 7 列:PLS-00306:調用“SP_WF_GET_REQUESTDETAILS”時 arguments 的數量或類型錯誤 ORA-06550:第 1 行,第 7 列:PL/SQL:語句被忽略
我的代碼
public DataResponse<DataTable> GetRequestCount(string Usercode)
{
try
{
var paramList = new List<OracleParameter>();
paramList.Add(new OracleParameter("P_IN_KEY", "GET_REQUEST_COUNT"));
paramList.Add(new OracleParameter("P_USER_CODE", Usercode));
OracleParameter param = new OracleParameter("P_OUT_OPEN", OracleType.Cursor);
OracleParameter param1 = new OracleParameter("P_OUT_APPROVED", OracleType.Cursor);
OracleParameter param2 = new OracleParameter("P_OUT_REJECTED", OracleType.Cursor);
param.Direction = ParameterDirection.Output;
param1.Direction = ParameterDirection.Output;
param2.Direction = ParameterDirection.Output;
paramList.Add(param);
paramList.Add(param1);
paramList.Add(param2);
var data = SPExcute("SP_WF_GET_REQUESTDETAILS", paramList);
return data;
}
catch (Exception ex)
{
ex.LogInfo();
return new DataResponse<DataTable>(DataResponseCode.InvaildInputs);
}
}
我的存儲過程
create or replace PROCEDURE SP_WF_GET_REQUESTDETAILS (P_IN_KEY IN VARCHAR2,
P_USER_CODE varchar2,
P_OUT_OPEN OUT SYS_REFCURSOR,
P_OUT_APPROVED OUT SYS_REFCURSOR,
P_OUT_REJECTED OUT SYS_REFCURSOR,
P_OUT_TBL OUT SYS_REFCURSOR) AS
BEGIN
IF P_IN_KEY='GET_OPENREQUEST' THEN
BEGIN
OPEN P_OUT_TBL FOR
SELECT A.REQUEST_NO AS Request_No,
A.REQUEST_DATE AS Request_Date,
A.CATEGORY_CODE AS Category_Code,
A.STATUS AS Status
FROM WF_TBL_TRN_REQUEST_HEADER A
WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='OPEN' OR A.STATUS like 'APPROVE LEVEL%');
END;
ELSIF P_IN_KEY='GET_APROVEDREQUEST' THEN
BEGIN
OPEN P_OUT_TBL FOR
SELECT A.REQUEST_NO AS Request_No,
A.REQUEST_DATE AS Request_Date,
A.CATEGORY_CODE AS Category_Code,
A.STATUS AS Status
FROM WF_TBL_TRN_REQUEST_HEADER A
WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='APPROVED');
END;
ELSIF P_IN_KEY='GET_REJECTEDREQUEST' THEN
BEGIN
OPEN P_OUT_TBL FOR
SELECT A.REQUEST_NO AS Request_No,
A.REQUEST_DATE AS Request_Date,
A.CATEGORY_CODE AS Category_Code,
A.STATUS AS Status
FROM WF_TBL_TRN_REQUEST_HEADER A
WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='REJECTED' OR A.STATUS like 'REJECTED LEVEL%');
END;
ELSIF P_IN_KEY='GET_REQUEST_COUNT' THEN
BEGIN
OPEN P_OUT_OPEN FOR
SELECT COUNT(*) Open_Request_Count FROM WF_TBL_TRN_REQUEST_HEADER A WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='OPEN' OR A.STATUS like 'APPROVE LEVEL%');
END;
BEGIN
OPEN P_OUT_APPROVED FOR
SELECT COUNT(*) Approved_Request_Count FROM WF_TBL_TRN_REQUEST_HEADER A WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='APPROVED');
END;
BEGIN
OPEN P_OUT_REJECTED FOR
SELECT COUNT(*) Rejected_Request_Count FROM WF_TBL_TRN_REQUEST_HEADER A WHERE A.CREATED_BY=P_USER_CODE AND (A.STATUS='REJECTED' OR A.STATUS like 'REJECTED LEVEL%');
END;
END IF;
END SP_WF_GET_REQUESTDETAILS;
這是我完整的存儲過程
您的 SP 第 2 行不應該從“P_USER_CODE varchar2”更改為“P_USER_CODE IN varchar2”嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.