Могу ли я получить один выход, используя цикл в pl / sql вместо нескольких выходов?
Ниже приведены мой запрос и вывод, который я получаю.
declare
CURSOR VALIGN_DAILY IS
SELECT AUDT.WKFL_NM,
AUDT.JOB_STAT,
AUDT.STRT_DT,
AUDT.END_DT,
AUDT.SRC_REC_CNT,
AUDT.TGT_REC_CNT,
AUDT.ERR_REC_CNT
FROM CRMF_AUDT_PROC_LOG AUDT
WHERE AUDT.WKFL_NM IN ('wf_ALIGNMENT_TERR_FIELDFORCE_EZFLEX_INB','wf_ALIGNMENT_USER_TERR_EZFLEX_INB','wf_ALIGNMENT_FIELDFORCE_STG_INB','wf_ALIGNMENT_TERR_STG_INB','wf_ALIGNMENT_USER_TERR_STG_INB')
AND (AUDT.JOB_STAT = 'S' OR AUDT.JOB_STAT = 'P' OR AUDT.JOB_STAT = 'E' OR AUDT.JOB_STAT = 'F')
AND TRUNC(AUDT.STRT_DT)=TRUNC(SYSDATE);
VALIGNSTATUS VALIGN_DAILY%ROWTYPE;
BEGIN
FOR VALIGNSTATUS IN VALIGN_DAILY LOOP
CASE VALIGNSTATUS.JOB_STAT
WHEN 'S' THEN DBMS_OUTPUT.PUT_LINE('VALIGN_DAILY' || ' ' || 'COMPLETED' || ' ' || VALIGNSTATUS.STRT_DT || ' ' || VALIGNSTATUS.END_DT || ' ' || VALIGNSTATUS.WKFL_NM);
WHEN 'P' THEN DBMS_OUTPUT.PUT_LINE('VALIGN_DAILY' || ' ' || 'IN_PROGRESS' || ' ' || VALIGNSTATUS.STRT_DT || ' ' || VALIGNSTATUS.END_DT || ' ' || VALIGNSTATUS.WKFL_NM);
WHEN 'E' THEN DBMS_OUTPUT.PUT_LINE('VALIGN_DAILY' || ' ' || 'ERRED' || ' ' || VALIGNSTATUS.STRT_DT || ' ' || VALIGNSTATUS.END_DT || ' ' || VALIGNSTATUS.WKFL_NM);
WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('VALIGN_DAILY' || ' ' || 'FAILED' || ' ' || VALIGNSTATUS.STRT_DT || ' ' || VALIGNSTATUS.END_DT || ' ' || VALIGNSTATUS.WKFL_NM);
ELSE
DBMS_OUTPUT.PUT_LINE ('VALIGN_DAILY' || ' ' || 'NOT_STARTED' || ' ' || 'N/A' || ' ' || 'N/A');
END CASE;
END LOOP;
end;
И мой выводэто как -
VALIGN_DAILY COMPLETED 28-MAY-2018 28-MAY-2018 wf_ALIGNMENT_FIELDFORCE_STG_INB
VALIGN_DAILY COMPLETED 28-MAY-2018 28-MAY-2018 wf_ALIGNMENT_USER_TERR_EZFLEX_INB
VALIGN_DAILY COMPLETED 28-MAY-2018 28-MAY-2018 wf_ALIGNMENT_TERR_FIELDFORCE_EZFLEX_INB
VALIGN_DAILY COMPLETED 28-MAY-2018 28-MAY-2018 wf_ALIGNMENT_USER_TERR_STG_INB
VALIGN_DAILY COMPLETED 28-MAY-2018 28-MAY-2018 wf_ALIGNMENT_TERR_STG_INB