Oracle Apex按下按钮运行2个sql脚本

时间:2015-01-13 13:19:32

标签: oracle oracle-apex

我有用户在一天结束时输入员工我必须运行2个脚本

在2年内为每个成员设置所有基本主数据和详细数据。

脚本1.生成主数据

MERGE INTO MD_TS_MAST d
USING (SELECT e.ENG_ID,
            a.DT 
       FROM MAN_ENGINEERS e
       CROSS JOIN ALL_DATES a) s 
ON (d.ENG_ID = s.ENG_ID AND
    d.MS_DATE = s.DT) 
WHEN NOT MATCHED THEN 
INSERT (ENG_ID, 
        MS_DATE) 
VALUES (s.ENG_ID, 
        s.DT); 

脚本2.生成详细数据

INSERT INTO MD_TS_DETAIL 
        (MD_ID) 
SELECT MAST_ID 
FROM   MD_TS_MAST 
WHERE  MAST_ID NOT IN (SELECT MD_ID 
                   FROM   MD_TS_DETAIL 
                   WHERE  MD_ID IS NOT NULL); 

问题是如何创建一个按钮,按下后将运行2个脚本。

1 个答案:

答案 0 :(得分:3)

创建一个PL / SQL页面进程,该进程在提交时使用源:

运行
MERGE INTO MD_TS_MAST d
USING (SELECT e.ENG_ID,
            a.DT 
       FROM MAN_ENGINEERS e
       CROSS JOIN ALL_DATES a) s 
ON (d.ENG_ID = s.ENG_ID AND
    d.MS_DATE = s.DT) 
WHEN NOT MATCHED THEN 
INSERT (ENG_ID, 
        MS_DATE) 
VALUES (s.ENG_ID, 
        s.DT); 

INSERT INTO MD_TS_DETAIL 
        (MD_ID) 
SELECT MAST_ID 
FROM   MD_TS_MAST 
WHERE  MAST_ID NOT IN (SELECT MD_ID 
                   FROM   MD_TS_DETAIL 
                   WHERE  MD_ID IS NOT NULL); 

然后在提交页面的页面上放置一个按钮。