I want to call a procedure inside another procedure when some conditions met. I am facing a problem when calling the procedure inside another procedure.
Please help me to get this issue resolved.
--- First Procedure ----
create or replace
PROCEDURE first_procedure(
PERIDTYPE IN VARCHAR2,
CITIZENID IN NUMBER,
NIFNUMBER OUT NUMBER,
PERIDNUMBER1 OUT NUMBER,
NUBINUMBER OUT NUMBER ,
REGFORMID OUT NUMBER ,
BOSTATUSCODE OUT VARCHAR2 ,
PERID OUT NUMBER )
AS
BEGIN
SELECT cm_nu_bi
INTO NUBINUMBER
FROM cm_minjus_agt_vw
WHERE cm_id_citizen_stage_sigt = CITIZENID;
select per_id
into PERID
from ci_per_id
WHERE id_type_cd = PERIDTYPE
AND per_id_nbr = NUBINUMBER;
SELECT reg_form_id,
per_id_nbr,
bo_status_cd
INTO REGFORMID,
NIFNUMBER,
BOSTATUSCODE
FROM table_x
WHERE per_id= PERID;
if NIFNUMBER is not null then
INSERT
INTO table_y
(
id_cidadao_stage_sigt,
NU_NIF
)
VALUES
(
PERIDNUMBER,
NIFNUMBER
);
else
EXCE := CM_ERROR_TABLE_ENTRY @CITIZENID=CITIZENID, @REGID=REGFORMID;
end if;
END CM_GET_NIF_NBR;
--- Second Procedure ---
create or replace
PROCEDURE second_procedure
(
CITIZENID IN NUMBER
, REGID IN NUMBER
, EXCEPTIONCATEGORYCD IN OUT VARCHAR2
, MESSAGECATEGORYNUMBER IN OUT NUMBER
, MESSAGENUMBER IN OUT NUMBER
, MESSAGETEXT IN OUT VARCHAR2
) AS
BEGIN
select
message_cat_nbr,
message_nbr,
excp_cat_cd
into
MESSAGECATEGORYNUMBER,
MESSAGENUMBER,
EXCEPTIONCATEGORYCD
from ci_reg_form_excp where
reg_form_id= REGID;
SELECT
message_text
into
MESSAGETEXT
FROM ci_msg_l
WHERE message_cat_nbr=MESSAGECATEGORYNUMBER
AND message_nbr=MESSAGENUMBER
AND language_cd='PTG';
insert INTO tb_sigt_processing_log@MINJUS_AGT_DBLINK
(ID_CIDADAO_STAGE_SIGT,exception_cat_code, message_category, message_number, message_text)
values
(CITIZENID,EXCEPTIONCATEGORYCD,MESSAGECATEGORYNUMBER,MESSAGENUMBER,MESSAGETEXT);
NULL;
END CM_ERROR_TABLE_ENTRY ;
The issue i am getting is. Please tell me if more input is needed.
I think you want to call the procedure with arguments in this line
EXCE := CM_ERROR_TABLE_ENTRY @CITIZENID=CITIZENID, @REGID=REGFORMID;
It is not valid in Oracle. You could just call your procedure using
CM_ERROR_TABLE_ENTRY( CITIZENID,REGFORMID );
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.