Oracle 11 g 中调用过程出错
Error in Calling Procedure in Oracle 11 g
我是 oracle 的新手,在调用 Oracle 中的存储过程时遇到以下问题。
错误:
*未声明绑定变量 "ERROR_MSG"
匿名区块已完成*
1)
调用存储过程
DECLARE
XMLDATA VARCHAR2(200);
P_YEAR_ID NUMBER;
USER_ID NUMBER;
ERROR_MSG NVARCHAR2(200);
BEGIN
XMLDATA := NULL;
P_YEAR_ID := NULL;
USER_ID := NULL;
PK_ADMIN.P_SAVE_ROLLUP_LPF_FAC(
XMLDATA => XMLDATA,
P_YEAR_ID => P_YEAR_ID,
USER_ID => USER_ID,
ERROR_MSG => ERROR_MSG
);
:ERROR_MSG := ERROR_MSG;
--rollback;
END;
2)
程序定义:
以下程序在包中
PROCEDURE P_SAVE_ROLLUP_LPF_FAC(xmlData IN VARCHAR2,p_year_id number,user_id
number,error_msg OUT nocopy NVARCHAR2) AS
X SYS.XMLTYPE;
NEW_BU_ID NUMBER;
BEGIN
X := sys.xmltype.createXML(xmlData);
BEGIN
//Here is the logic for processing of the XML
END;
除了@Ersin Guelbahar 建议的内容,我希望您对调用过程的方式做更多的更改:
DECLARE
XMLDATA VARCHAR2(200):= NULL;
P_YEAR_ID NUMBER:=NULL;
USER_ID NUMBER :=NULL;
ERROR_MSG NVARCHAR2(200);
BEGIN
/*****No need to assign at sepearate step. You can decalre and assign*****
--XMLDATA := NULL;
--P_YEAR_ID := NULL;
--USER_ID := NULL; ********************/
PK_ADMIN.P_SAVE_ROLLUP_LPF_FAC(
XMLDATA => XMLDATA,
P_YEAR_ID => P_YEAR_ID,
USER_ID => USER_ID,
ERROR_MSG => ERROR_MSG
);
ERROR_MSG := ERROR_MSG;
--rollback;
END;
我是 oracle 的新手,在调用 Oracle 中的存储过程时遇到以下问题。
错误: *未声明绑定变量 "ERROR_MSG"
匿名区块已完成*
1) 调用存储过程
DECLARE
XMLDATA VARCHAR2(200);
P_YEAR_ID NUMBER;
USER_ID NUMBER;
ERROR_MSG NVARCHAR2(200);
BEGIN
XMLDATA := NULL;
P_YEAR_ID := NULL;
USER_ID := NULL;
PK_ADMIN.P_SAVE_ROLLUP_LPF_FAC(
XMLDATA => XMLDATA,
P_YEAR_ID => P_YEAR_ID,
USER_ID => USER_ID,
ERROR_MSG => ERROR_MSG
);
:ERROR_MSG := ERROR_MSG;
--rollback;
END;
2) 程序定义:
以下程序在包中
PROCEDURE P_SAVE_ROLLUP_LPF_FAC(xmlData IN VARCHAR2,p_year_id number,user_id
number,error_msg OUT nocopy NVARCHAR2) AS
X SYS.XMLTYPE;
NEW_BU_ID NUMBER;
BEGIN
X := sys.xmltype.createXML(xmlData);
BEGIN
//Here is the logic for processing of the XML
END;
除了@Ersin Guelbahar 建议的内容,我希望您对调用过程的方式做更多的更改:
DECLARE
XMLDATA VARCHAR2(200):= NULL;
P_YEAR_ID NUMBER:=NULL;
USER_ID NUMBER :=NULL;
ERROR_MSG NVARCHAR2(200);
BEGIN
/*****No need to assign at sepearate step. You can decalre and assign*****
--XMLDATA := NULL;
--P_YEAR_ID := NULL;
--USER_ID := NULL; ********************/
PK_ADMIN.P_SAVE_ROLLUP_LPF_FAC(
XMLDATA => XMLDATA,
P_YEAR_ID => P_YEAR_ID,
USER_ID => USER_ID,
ERROR_MSG => ERROR_MSG
);
ERROR_MSG := ERROR_MSG;
--rollback;
END;