| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
|  |  | |||
Home -> Community -> Usenet -> c.d.o.server -> Snapshot too old
Hi there
While running the following procedure, I get the following Oracle Error Message:
ORA-01555: snapshot too old: rollback segment number 3 with name "R02" too small
The size of the Rollback segments are: Initial 1M, Next 1M, Optimal 20M, Maxextents 99.
The amount of Rows being selected into the cursor is +- 1.4 million and the size of the source table is 80M.
Here is the procedure:
PROCEDURE LOAD3_RAG_SKUS_ST_HIST_FM IS
       Cursor RSkusCursor is SELECT *
		       FROM tru_stg_rag_skus_st_hist;
--		        where rownum < 10000;
    RSkusRecord RSkusCursor%ROWTYPE;
    v_trans_cnt 	    number (5):=0;
    v_total		    number := 0;
     update RAG_SKUS_ST_HIST
        	set SALES = 1
        	where SKU   = RSkusRecord.sku and
            	    STORE     = RSkusRecord.from_branch and
            	    EOW_DATE  = RSkusRecord.transaction_date and
		    SALES_TYPE = 'R';
    If SQL%NOTFOUND then
  	insert into RAG_SKUS_ST_HIST (sku, style, store, eow_date, sales_type)
  	values
    	       (RSkusRecord.sku, RSkusRecord.type||RSkusRecord.style,
    	         RSkusRecord.from_branch, RSkusRecord.transaction_date, 'R');
    End if;
        v_trans_cnt:= v_trans_cnt + 1;
        If v_trans_cnt >= 500 then
    		commit;
    		v_total:=v_total + v_trans_cnt;
--    		dbms_output.put_line ('Committed ' || v_trans_cnt);
--    		dbms_output.put_line ('Total Committed ' || v_total);
    		v_trans_cnt:=0;
        End if;
           Oracle DBA
           Truworths International
           Cape Town, South Africa
           Tel: +27 21 460-7561            
           Fax:  +27 21 461-7641
           E-mail: fmohidin_at_truworths.co.za
Received on Thu Feb 26 1998 - 00:00:00 CST
|  |  |