简体   繁体   中英

How to execute Oracle Stored Procedure with 4 input parameter & more than 60 Output Parameter using SQL Worksheet in SQL Developer?

I have created one SP Oracle 11g with 4 input parameter & approx 64 Output parameters all input & output parameters data type is VARCHAR2, I have Oracle Sql Developer Tool, When I execute Using GUI Controls the SP execute Properly & shows desirable Output When i try to execute the SP in worksheet by passing 4 input parameter in which 2 are date parameters, its shows error:

Error report - ORA-06550: line 1, column 212: PLS-00306: wrong number or types of arguments in call to 'TEST_PROC_PROFIT_N_LOSS' ORA-06550: line 1, column 212: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\\n%s" *Cause: Usually a PL/SQL compilation error.

I try in worksheet

execute test_proc_profit_n_loss('01','01/04/2017','31/03/2018','01');

but I don't mention the OP parameter because of its more than 60

Sorry, you said two of your input parameters are DATE, so try yo call your function this way:

execute test_proc_profit_n_loss('01',TO_DATE('01/04/2017','DD/MM/YYYY'),
TO_DATE('31/03/2018','DD/MM/YYYY'),'01');

this code work for me

SET SERVEROUTPUT ON;
DECLARE
IP_USER_ID  VARCHAR2(200);
IP_FROM_DATE  VARCHAR2(200);
IP_TO_DATE  VARCHAR2(200);
IP_COMPANY_ID  VARCHAR2(200);

OP_COMPNAME VARCHAR2(200);
OP_COMPADD VARCHAR2(200);
OP_DE_GROUPNAME VARCHAR2(200);
OP_DE_FUNVAL VARCHAR2(200);
OP_DE_LEDGER_NAME VARCHAR2(200);
OP_DE_AMOUNT VARCHAR2(200);
OP_IMPCHRG_GROUP_NAME VARCHAR2(200);
OP_IMPCHRG_FUNVAL VARCHAR2(200);
OP_PURACC_NAME VARCHAR2(200);
OP_PURACC_AMOUNT VARCHAR2(200);
OP_SALES_GROUP_NAME VARCHAR2(200);
OP_SALES_AMOUNT VARCHAR2(200);
OP_INDIR_GROUPNAME VARCHAR2(200);
OP_INDIR_AMOUNT VARCHAR2(200);
OP_FINEXP_GROUPNAME VARCHAR2(200);
OP_FINEXP_AMOUNT VARCHAR2(200);
OP_INSUEXP_GROUPNAME VARCHAR2(200);
OP_INSUEXP_AMOUNT VARCHAR2(200);
OP_OFFEXP_GROUPNAME VARCHAR2(200);
OP_OFFEXP_AMOUNT VARCHAR2(200);
OP_SDE_GROUPNAME VARCHAR2(200);
OP_SDE_AMOUNT VARCHAR2(200);
OP_SATUEXP_GROUPNAME VARCHAR2(200);
OP_SATUEXP_AMOUNT VARCHAR2(200);
OP_ININCOM_GNAME VARCHAR2(200);
OP_ININCOM_AMT VARCHAR2(200);
OP_IC_LEDGNAME VARCHAR2(200);
OP_IC_LEDAMOUNT VARCHAR2(200);
OP_PA_LEDGNAME VARCHAR2(200);
OP_PA_LEDAMOUNT VARCHAR2(200);
OP_SA_LEDGNAME VARCHAR2(200);
OP_SA_LEDAMOUNT VARCHAR2(200);
OP_IE_LEDGNAME VARCHAR2(200);
OP_IE_LEDAMOUNT VARCHAR2(200);
OP_FE_LEDGNAME VARCHAR2(200);
OP_FE_LEDAMOUNT VARCHAR2(200);
OP_INS_LEDGNAME VARCHAR2(200);
OP_INS_LEDAMOUNT VARCHAR2(200);
OP_OE_LEDGNAME VARCHAR2(200);
OP_OE_LEDAMOUNT VARCHAR2(200);
OP_SDE_LEDGNAME VARCHAR2(200);
OP_SDE_LEDAMOUNT VARCHAR2(200);
OP_SE_LEDGNAME VARCHAR2(200);
OP_SE_LEDAMOUNT VARCHAR2(200);
OP_IND_LEDGNAME VARCHAR2(200);
OP_IND_LEDAMOUNT VARCHAR2(200);
OUT_OPENINGAMT VARCHAR2(200);
OUT_CLOSINGAMT VARCHAR2(200);
OP_GROSS_PRO_CO VARCHAR2(200);
OP_GROSS_PRO_BF VARCHAR2(200);
OP_GROSS_LOS_CO VARCHAR2(200);
OP_GROSS_LOS_BF VARCHAR2(200);
OP_GR_DIREXP_TOT VARCHAR2(200);
OP_GR_DIRINC_TOT VARCHAR2(200);
OP_GR_INDIREXP_TOT VARCHAR2(200);
OP_GR_INDIRINCOM_TOT VARCHAR2(200);
OP_NETPROFIT VARCHAR2(200);
OP_NETLOSS VARCHAR2(200);
OP_MSG VARCHAR2(200);
OP_RESULT VARCHAR2(200);
BEGIN
IP_USER_ID := '01';
IP_FROM_DATE := '01/04/2017';
IP_TO_DATE := '31/03/2018';
IP_COMPANY_ID := '01';

TEST_PROC_PROFIT_N_LOSS(

IP_USER_ID,
IP_FROM_DATE, 
IP_TO_DATE,
IP_COMPANY_ID,

OP_COMPNAME,
OP_COMPADD ,
OP_DE_GROUPNAME ,
OP_DE_FUNVAL ,
OP_DE_LEDGER_NAME ,
OP_DE_AMOUNT ,
OP_IMPCHRG_GROUP_NAME ,
OP_IMPCHRG_FUNVAL ,
OP_PURACC_NAME ,
OP_PURACC_AMOUNT ,
OP_SALES_GROUP_NAME ,
OP_SALES_AMOUNT ,
OP_INDIR_GROUPNAME ,
OP_INDIR_AMOUNT ,
OP_FINEXP_GROUPNAME ,
OP_FINEXP_AMOUNT ,
OP_INSUEXP_GROUPNAME ,
OP_INSUEXP_AMOUNT ,
OP_OFFEXP_GROUPNAME ,
OP_OFFEXP_AMOUNT ,
OP_SDE_GROUPNAME ,
OP_SDE_AMOUNT ,
OP_SATUEXP_GROUPNAME ,
OP_SATUEXP_AMOUNT ,
OP_ININCOM_GNAME ,
OP_ININCOM_AMT ,
OP_IC_LEDGNAME ,
OP_IC_LEDAMOUNT ,
OP_PA_LEDGNAME ,
OP_PA_LEDAMOUNT ,
OP_SA_LEDGNAME ,
OP_SA_LEDAMOUNT ,
OP_IE_LEDGNAME ,
OP_IE_LEDAMOUNT ,
OP_FE_LEDGNAME ,
OP_FE_LEDAMOUNT ,
OP_INS_LEDGNAME ,
OP_INS_LEDAMOUNT ,
OP_OE_LEDGNAME ,
OP_OE_LEDAMOUNT ,
OP_SDE_LEDGNAME ,
OP_SDE_LEDAMOUNT ,
OP_SE_LEDGNAME ,
OP_SE_LEDAMOUNT ,
OP_IND_LEDGNAME ,
OP_IND_LEDAMOUNT ,
OUT_OPENINGAMT ,
OUT_CLOSINGAMT ,
OP_GROSS_PRO_CO ,
OP_GROSS_PRO_BF ,
OP_GROSS_LOS_CO ,
OP_GROSS_LOS_BF ,
OP_GR_DIREXP_TOT ,
OP_GR_DIRINC_TOT ,
OP_GR_INDIREXP_TOT ,
OP_GR_INDIRINCOM_TOT ,
OP_NETPROFIT ,
OP_NETLOSS ,
OP_MSG ,
OP_RESULT 
);
DBMS_OUTPUT.PUT_LINE(OP_COMPNAME);
DBMS_OUTPUT.PUT_LINE(OP_COMPADD);
END;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM