Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Using commit every 1000 record

Haisa.MAug 7 2012 — edited Aug 8 2012
Hello every one,

I have a procedure to load data through API but we have almost 35000 data to load and I want to use commit for every 1000 data. Could you please help me on that. I don't know how I can use the commit for every 1000 data. Here is my procedure:

create or replace
PROCEDURE OLM_CLASS_HISTORY4
AUTHID CURRENT_USER AS



lv_BOOKING_ID NUMBER;
lv_BOOKING_STATUS_TYPE_ID NUMBER;
lv_EVENT_ID NUMBER;
lv_PERSON_ID NUMBER;
lv_DATE_BOOKING_PLACED DATE;
lv_OBJECT_VERSION_NUMBER NUMBER;
lv_FINANCE_LINE_ID NUMBER;


CURSOR C1 IS
SELECT OLM_NUMBER,
OLM_DATE_OF_CLASS,
OLM_CLASS
FROM OLM_HISTORY_CLASS;

BEGIN
FOR C1_REC IN C1
LOOP
begin
select DISTINCT PAF.PERSON_ID INTO lv_PERSON_ID
from PER.PER_ALL_PEOPLE_F PAF

where PAF.EMPLOYEE_NUMBER= C1_REC.OLM_NUMBER;

exception
WHEN OTHERS THEN
DECLARE
error_code NUMBER :=SQLCODE;
error_msg varchar2 (200) :=SUBSTR(SQLERRM,1,200);
BEGIN
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OUTPUT.PUT_LINE('.');
DBMS_OUTPUT.PUT_LINE('PID Error: ' || error_code || ' - ' || error_msg);
DBMS_OUTPUT.PUT_LINE('.');

END;
END;


lv_DATE_BOOKING_PLACED:= C1_REC.OLM_DATE_OF_CLASS;

BEGIN
SELECT DISTINCT AOET.EVENT_ID INTO lv_EVENT_ID
FROM APPS_APPLMGR.ota_events_tl AOET

WHERE
AOET.TITLE = C1_REC.OLM_CLASS;
exception
WHEN OTHERS THEN
DECLARE
error_code NUMBER :=SQLCODE;
error_msg varchar2 (200) :=SUBSTR(SQLERRM,1,200);
BEGIN
DBMS_OUTPUT.PUT_LINE('.');
DBMS_OUTPUT.PUT_LINE('EID Error: ' || error_code || ' - ' || error_msg);
DBMS_OUTPUT.PUT_LINE('.');

END;
END;

dbms_output.put_line('Event id:'||lv_event_id);
dbms_output.put_line('Person id:'||lv_person_id);
dbms_output.put_line('Booking date:'||lv_date_booking_placed);
dbms_output.put_line('Ovn:'||lv_object_version_number);
dbms_output.put_line('Finance line id:'||lv_finance_line_id);

BEGIN

APPS_APPLMGR.OTA_DELEGATE_BOOKING_API.CREATE_DELEGATE_BOOKING (P_VALIDATE => FALSE,
P_EFFECTIVE_DATE => trunc(sysdate),
P_BOOKING_ID => lv_BOOKING_ID,
P_BOOKING_STATUS_TYPE_ID => 4,
p_delegate_person_id => lv_PERSON_ID,
p_contact_id => NULL,
P_BUSINESS_GROUP_ID => 0,
P_EVENT_ID => lv_EVENT_ID,
P_DATE_BOOKING_PLACED => lv_DATE_BOOKING_PLACED,
P_INTERNAL_BOOKING_FLAG => 'Y',
p_number_of_places => 1,
P_OBJECT_VERSION_NUMBER => lv_OBJECT_VERSION_NUMBER,
P_SUCCESSFUL_ATTENDANCE_FLAG => 'Y',
P_FINANCE_LINE_ID => lv_FINANCE_LINE_ID);
exception
WHEN OTHERS THEN
DECLARE
error_code NUMBER :=SQLCODE;
error_msg varchar2 (200) :=SUBSTR(SQLERRM,1,200);
BEGIN
DBMS_OUTPUT.PUT_LINE('.');
DBMS_OUTPUT.PUT_LINE('API Error: ' || error_code || ' - ' || error_msg);
DBMS_OUTPUT.PUT_LINE('.');

END;
END;

END LOOP;
lv_PERSON_ID := null;
lv_EVENT_ID := null;
COMMIT;
--rollback;
END;


I appreciate your help.

Thanks,
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 5 2012
Added on Aug 7 2012
25 comments
2,423 views