Re: Update 100 rows and sleep for 60 sec

  • From: "Powell, Mark" <mark.powell2@xxxxxxx>
  • To: Balwanth B <balwanthdba@xxxxxxxxx>, Upendra nerilla <nupendra@xxxxxxxxxxx>
  • Date: Tue, 28 Mar 2017 17:19:57 +0000

Looks OK to me but the best way to find out is to try it.

________________________________
From: Balwanth B <balwanthdba@xxxxxxxxx>
Sent: Tuesday, March 28, 2017 1:04:35 PM
To: Powell, Mark; Upendra nerilla
Cc: ORACLE-L
Subject: Re: Update 100 rows and sleep for 60 sec

I have modified something like below.. application operation takes place with 
that update device gets activated so i need to give some time gap for that.

declare
CURSOR REC_CUR IS
select serialnumber from hdm_mon.TEMP_CDSERIAL
TYPE ROWID_T IS TABLE OF VARCHAR2(50);
ROWID_TAB ROWID_T;
BEGIN
OPEN REC_CUR;
LOOP
FETCH REC_CUR BULK COLLECT INTO ROWID_TAB LIMIT 100;
EXIT WHEN REC_CUR.COUNT=0;
FORALL I IN 1.. ROWID_TAB.COUNT
update device set activated=1 where activated =0 and managed =1 and id= 
ROWID_TAB(I);
COMMIT;
dbms_lock.sleep(30);
END LOOP;
CLOSE REC_CUR;
commit;
END;


Does this look good?

On Tue, Mar 28, 2017 at 12:59 PM, Powell, Mark 
<mark.powell2@xxxxxxx<mailto:mark.powell2@xxxxxxx>> wrote:

See DBMS_LOCK.SLEEP(n)


where N is how many seconds you want the process to sleep.  Though what is the 
point of sleeping.

________________________________
From: oracle-l-bounce@xxxxxxxxxxxxx<mailto:oracle-l-bounce@xxxxxxxxxxxxx
<oracle-l-bounce@xxxxxxxxxxxxx<mailto:oracle-l-bounce@xxxxxxxxxxxxx>> on behalf 
of Balwanth B <balwanthdba@xxxxxxxxx<mailto:balwanthdba@xxxxxxxxx>>
Sent: Tuesday, March 28, 2017 12:16:07 PM
To: ORACLE-L
Subject: Update 100 rows and sleep for 60 sec

I am looking for script which will update


Update 100 rows
commit
sleep
then next update 100 rows
follow the same pattern

I have something like below but how do I make sure it sleeps for mentioned time 
and does the next 100 rows.

declare
CURSOR REC_CUR IS
select statement;
TYPE ROWID_T IS TABLE OF VARCHAR2(50);
ROWID_TAB ROWID_T;
BEGIN
OPEN REC_CUR;
LOOP
FETCH REC_CUR BULK COLLECT INTO ROWID_TAB LIMIT 5000;
EXIT WHEN REC_CUR%NOTFOUND;
FORALL I IN 1.. ROWID_TAB.COUNT
update statement
COMMIT;
END LOOP;
CLOSE REC_CUR;
END;

Other related posts: