Oracle 11gR2: Czy mogę użyć DBMS_PARALLEL_EXECUTE, aby uruchomić mój niestandardowy kod PL / SQL?
Przygotowałem trochęskrzypce:
CREATE TABLE t_process
("process_number" int, "process_status" varchar2(12))
;
INSERT ALL
INTO t_process ("process_number", "process_status")
VALUES (1, 'PROCESSING')
INTO t_process ("process_number", "process_status")
VALUES (2, 'PROCESSING')
INTO t_process ("process_number", "process_status")
VALUES (3, 'TO_BE_KILLED')
INTO t_process ("process_number", "process_status")
VALUES (4, 'PROCESSING')
INTO t_process ("process_number", "process_status")
VALUES (5, 'PROCESSING')
INTO t_process ("process_number", "process_status")
VALUES (6, 'TO_BE_KILLED')
INTO t_process ("process_number", "process_status")
VALUES (7, 'TO_BE_KILLED')
INTO t_process ("process_number", "process_status")
VALUES (8, 'WAITING')
INTO t_process ("process_number", "process_status")
VALUES (9, 'KILLED')
SELECT * FROM dual
;
To jest moja procedura przetwarzania:
CREATE OR REPLACE PROCEDURE MY_PROCEDURE(IN_ID IN NUMBER) IS
BEGIN
UPDATE T_PROCESS SET process_status = 'KILLING' WHERE process_number = IN_ID;
COMMIT;
-- DO SOME STUFF
UPDATE T_PROCESS SET process_status = 'KILLED' WHERE process_number = IN_ID;
COMMIT;
END MY_PROCEDURE;
Teraz chcę użyćDBMS_PARALLEL_EXECUTE
uruchomić ten zwyczajSQL
:
DECLARE
id1 number = :id1;
id2 number = :id2;
BEGIN
MY_PROCEDURE(id1);
END;
Moje pytanie brzmi:
Mogę uzyćDBMS_PARALLEL_EXECUTE
wykonać powyżej instrukcji SQL?
Ponieważ tylko znalazłemUPDATE
przykłady. MożeCREATE_CHUNKS_BY_SQL
wybrać tylkoTO_BE_KILLED
i wtedyRUN_TASK
z powyższym oświadczeniem?