Re: Update 100 rows and sleep for 60 sec

  • From: Balwanth B <balwanthdba@xxxxxxxxx>
  • To: "Powell, Mark" <mark.powell2@xxxxxxx>, Upendra nerilla <nupendra@xxxxxxxxxxx>
  • Date: Tue, 28 Mar 2017 13:04:35 -0400

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> 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 <oracle-l-bounce@xxxxxxxxxxxxx> on
behalf of Balwanth B <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: