Oracle Pl-SQL: Update for loop iterating for a very long time and not updating records
0
votes
0
answers
1960
views
I trying to create a process in Oracle Apex to update certain columns of a table when a button is pressed which is related to accounting info. Moreover, I would like to validate the existence of certain columns from another table. I have created a small procedure to test the this update process but it running for more than ten minutes and it is not updating the records. I have tried a for loop with a select statement inside and with cursor as well. Both are not working The snippet below is using a cursor. I am not sure why its running for a long time since there exists about a little more than 1K records that will get updated. Please let me know what I could be doing wrong. Thank you in advance.
DECLARE
VAR1 DATE := TO_DATE('11/15/2019', 'MM/DD/YYYY');
VAR2 VARCHAR2(25) := '0000809349';
VAR3 NUMBER := 2017;
VAR4 NUMBER := 4;
VAR5 DATE := TO_DATE('11/18/2019', 'MM/DD/YYYY');
CURSOR TEST1 IS
SELECT PD, JI, FY, AP, DPD FROM MFT WHERE RSN = 9097
FOR UPDATE;
BEGIN
FOR i IN TEST1
LOOP
UPDATE MFT
SET PD = VAR1,
JI = VAR2,
FY = VAR3,
AP = VAR4,
DPD = VAR5
WHERE RSN = 9097
AND VAR1 IN (SELECT PAYMENT_DATE FROM MEC WHERE PAYMENT_DATE = VAR1)
AND VAR2 IN (SELECT JI FROM CGL WHERE JI = VAR2)
AND VAR3 IN (SELECT FY FROM CGL WHERE FY = VAR3)
AND VAR4 IN (SELECT AP FROM CGL WHERE AP = VAR4)
AND VAR5 IN (SELECT DPD FROM CGL WHERE DPD = VAR5)
AND PD = TO_DATE('06/09/2017', 'MM/DD/YYYY')
AND JI = '0000911979'
AND FY = 2017
AND AP = 12
AND DPD = TO_DATE('06/09/2017', 'MM/DD/YYYY');
END LOOP;
COMMIT;
END;
Asked by DMAS
(11 rep)
Sep 14, 2021, 02:58 AM
Last activity: Sep 14, 2021, 02:41 PM
Last activity: Sep 14, 2021, 02:41 PM