Hi ALL:
How can we set auto commit in PL/SQL . So that my following code commit records after every 10,000 rows update.
I'm getting Rollback segment error as there are more than 10,00,000 records in table to update..
ORA-01562: failed to extend rollback segment number 6
ORA-01628: max # extents (121) reached for rollback segment ROLLBACK5
*********** My PL/SQL Code
FOR sku_num_rec IN sku_num_cur
LOOP
v_update_str := 'UPDATE '||sku_num_rec.table_name||
' SET ' ||sku_num_rec.column_name||
'= ''' ||v_prefix1||v_prefix2||'''||'||sku_num_rec.column_name||
' WHERE LENGTH('||sku_num_rec.column_name||') = '||v_sku_len ;
BEGIN
EXECUTE IMMEDIATE v_update_str;
UTL_FILE.put_line(v_file,sku_num_rec.table_name||' successfully updated.');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
v_text_err := '***ERROR: While updating '||sku_num_rec.table_name;
UTL_FILE.put_line(v_file,v_text_err);
v_text_err := '***ERROR:'||sqlerrm;
UTL_FILE.put_line(v_file,v_text_err);
ROLLBACK;
END;
END LOOP;
How can we set auto commit in PL/SQL . So that my following code commit records after every 10,000 rows update.
I'm getting Rollback segment error as there are more than 10,00,000 records in table to update..
ORA-01562: failed to extend rollback segment number 6
ORA-01628: max # extents (121) reached for rollback segment ROLLBACK5
*********** My PL/SQL Code
FOR sku_num_rec IN sku_num_cur
LOOP
v_update_str := 'UPDATE '||sku_num_rec.table_name||
' SET ' ||sku_num_rec.column_name||
'= ''' ||v_prefix1||v_prefix2||'''||'||sku_num_rec.column_name||
' WHERE LENGTH('||sku_num_rec.column_name||') = '||v_sku_len ;
BEGIN
EXECUTE IMMEDIATE v_update_str;
UTL_FILE.put_line(v_file,sku_num_rec.table_name||' successfully updated.');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
v_text_err := '***ERROR: While updating '||sku_num_rec.table_name;
UTL_FILE.put_line(v_file,v_text_err);
v_text_err := '***ERROR:'||sqlerrm;
UTL_FILE.put_line(v_file,v_text_err);
ROLLBACK;
END;
END LOOP;