Sample Header Ad - 728x90

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