I have never created a stored procedure before. I have looked quite a bit and any template iv seen doesn't work for me.
I need a stored proc. that will run a series of scripts (27ish in all) right after another.
below is a snippet of the strings that will need to run, but I do not know how to do so via procedure, unless there is an alternative.
DELETE
FROM EXTRACT_WORK_000;
-----------------------------------------------------------------step00a1b ITEMMASTER
DELETE
FROM SITES_TO_BE_PROCESSED;
-----------------------------------------------------------------STEP00a1b_DAYCOUNT_APPEND_TO_EXTRACT_WORK_000
INSERT INTO EXTRACT_WORK_000 (LOC_ID,
FSCL_YR_NUM,
FSCL_WK_IN_YR_NUM,
MAXOFACTIVITYDAYS)
SELECT LOC_ID,
FSCL_YR_NUM,
FSCL_WK_IN_YR_NUM,
MAX(ACTIVITYDAYS) AS MAXOFACTIVITYDAYS
FROM EXTRACT_ORDER_DETAIL
GROUP BY LOC_ID, FSCL_YR_NUM, FSCL_WK_IN_YR_NUM;
-----------------------------------------------------------------step00a1c
INSERT INTO SITES_TO_BE_PROCESSED (LOC_ID,
FSCL_YR_NUM,
FSCL_WK_IN_YR_NUM)
SELECT LOC_ID,
FSCL_YR_NUM,
FSCL_WK_IN_YR_NUM
FROM EXTRACT_ORDER_DETAIL
GROUP BY LOC_ID, FSCL_YR_NUM, FSCL_WK_IN_YR_NUM;
-----------------------------------------------------------------step00a2_APPEND_TO_PERIOD
INSERT INTO PERIOD_XREF (FSCL_WK_IN_YR_NUM,
CALDR_YR_NUM,
FSCL_PD_NUM)
SELECT PERIOD_XTND.FSCL_WK_IN_YR_NUM,
PERIOD_XTND.CALDR_YR_NUM,
PERIOD_XTND.FSCL_PD_NUM
FROM PERIOD_XTND,
PERIOD_XREF
WHERE PERIOD_XTND.FSCL_PD_NUM = PERIOD_XREF.FSCL_PD_NUM (+)
AND PERIOD_XTND.CALDR_YR_NUM = PERIOD_XREF.CALDR_YR_NUM (+)
AND PERIOD_XTND.FSCL_WK_IN_YR_NUM = PERIOD_XREF.FSCL_WK_IN_YR_NUM (+)
AND (PERIOD_XREF.FSCL_WK_IN_YR_NUM IS NULL
OR PERIOD_XREF.CALDR_YR_NUM IS NULL
OR PERIOD_XREF.FSCL_PD_NUM IS NULL)
GROUP BY PERIOD_XTND.FSCL_WK_IN_YR_NUM, PERIOD_XTND.CALDR_YR_NUM, PERIOD_XTND.FSCL_PD_NUM;
-----------------------------------------------------------------step00a2a_periods_to_process
DELETE
FROM PERIOD_TO_PROCESS;
-----------------------------------------------------------------step00a2bperiods_to_process
INSERT INTO PERIOD_TO_PROCESS (FSCL_YR_NUM,
FSCL_WK_IN_YR_NUM)
SELECT EXTRACT_ORDER_DETAIL.FSCL_YR_NUM,
EXTRACT_ORDER_DETAIL.FSCL_WK_IN_YR_NUM
FROM EXTRACT_ORDER_DETAIL
GROUP BY EXTRACT_ORDER_DETAIL.FSCL_YR_NUM, EXTRACT_ORDER_DETAIL.FSCL_WK_IN_YR_NUM;
-----------------------------------------------------------------STEP00a3_CASEFLOW_PARM
INSERT INTO CONTROL_RECORDS (LOC_ID,
CASEFLOW_USPD_MAX)
SELECT /*+ FULL(CONTROL_RECORDS) */ LOCATION.LOC_ID,
5 AS Expr1
FROM LOCATION,
CONTROL_RECORDS
WHERE LOCATION.LOC_ID = CONTROL_RECORDS.LOC_ID (+)
AND CONTROL_RECORDS.LOC_ID IS NULL
GROUP BY LOCATION.LOC_ID, 5;
Hii
this is a simple example to create your stored procedure
CREATE OR REPLACE PROCEDURE PROC(
P_LOC_ID IN NUMBER,
P_FSCL_YR_NUM IN NUMBER,
P_FSCL_WK_IN_YR_NUM IN NUMBER,
P_MAXOFACTIVITYDAYS IN NUMBER )
AS
BEGIN
-------------------------------STEP00a1b_DAYCOUNT_APPEND_TO_EXTRACT_WORK_000
INSERT
INTO EXTRACT_WORK_000 VALUES
(
P_LOC_ID,
P_FSCL_YR_NUM,
P_FSCL_WK_IN_YR_NUM,
P_MAXOFACTIVITYDAYS
) ;
END PROC;
you can do this with all your statements
I hope i helped you
have a nice day
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.