我创建了一个带有4个输入参数和大约64个输出参数的SP Oracle 11g,所有输入和输出参数的数据类型均为VARCHAR2,我具有Oracle Sql Developer Tool,当我使用GUI控制执行时,SP正确执行并显示期望的输出 当我尝试通过传递4个输入参数(其中2个是日期参数)在工作表中执行SP时,显示错误:
错误报告-ORA-06550:第1行,第212列:PLS-00306:错误的编号 或调用“ TEST_PROC_PROFIT_N_LOSS” ORA-06550中的参数类型: 第1行,第212列:PL / SQL:语句被忽略 06550。00000-“%s行,%s列:\ n%s” *原因:通常是PL / SQL编译错误。
我在工作表中尝试
public class MyExampleModule extends AbstractModule {
@Override
protected void configure() {
super.configure();
binder().requireExplicitBindings();
...
}
}
但是我没有提到OP参数,因为它的数量超过60
答案 0 :(得分:0)
对不起,您说您的两个输入参数是DATE,所以请尝试以这种方式调用函数:
execute test_proc_profit_n_loss('01',TO_DATE('01/04/2017','DD/MM/YYYY'),
TO_DATE('31/03/2018','DD/MM/YYYY'),'01');
答案 1 :(得分:0)
此代码对我有用
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;