Re: Updating within a cursor
Date: Mon, 19 Nov 2001 13:03:52 -0800
Message-ID: <9tbrv9$l9a$1_at_spiney.sierra.com>
create cursor c1 is
select a,b,c from t1 where ...
FOR UPDATE;
begin
for c in c1 loop
if a>0 then
UPDATE b where current of c;
-- do not use commits
-- doing so may cause fetch out of sequence errors
end loop;
end;
"sridhar thiru" <sridhartee_at_yahoo.com> wrote in message
news:a8c78b68.0111190920.731644d6_at_posting.google.com...
> I want to update a row in a table for the current row of the cursor.
>
>
> Heres more information about it.
>
> CURSOR cur_get_twmpoint_est(p_cd_wr twmpoint_est.cd_wr%TYPE,
> p_cd_dist twmpoint_est.cd_dist%TYPE,
> p_no_design twmpoint_est.no_design%TYPE ) IS
> SELECT twmpoint_est.no_point,
> twmpoint_est.no_point_span,
> twmpoint_est.ln_span,
> twmpointcost_est.amt_fixed_bid,
> twmpointcost_est.cd_entity,
> twmpointcost_est.cd_bid_item,
> twmpointcost_est.ind_cntcr_calc_mth
> FROM twmpoint_est,
> twmpointcost_est
> WHERE ( TWMPOINT_EST.CD_DIST = p_cd_dist)
> AND ( TWMPOINT_EST.CD_WR = p_cd_wr )
> AND ( TWMPOINT_EST.NO_DESIGN = p_no_design )
> AND ( twmpoint_est.cd_dist = twmpointcost_est.cd_dist )
> AND ( twmpoint_est.cd_wr = twmpointcost_est.cd_wr )
> AND ( twmpoint_est.no_design = twmpointcost_est.no_design )
> AND ( twmpoint_est.no_point = twmpointcost_est.no_point )
> AND ( twmpoint_est.no_point_span = twmpointcost_est.no_point_span
> ) ;
>
> BEGIN
>
>
> OPEN cur_get_twmpoint_est(pvg_cd_wr_num, pvg_cd_dist_txt,
> pvg_design_num) ;
>
> LOOP
> FETCH cur_get_twmpoint_est INTO cv_no_point,
> cv_no_point_span, cv_ln_span, cv_amt_fixed_bid,
> cv_cd_entity, cv_cd_bid_item, cv_ind_cntcr_calc_mth;
> EXIT WHEN cur_get_twmpoint_est%NOTFOUND;
> lv_twmpoint_est_rec.ln_span := cv_ln_span;
> lv_twmpointcost_est_rec.cd_entity := cv_cd_entity;
> lv_twmpointcost_est_rec.cd_bid_item := cv_cd_bid_item;
> svar_rec.work_linear_distance := svar_rec.work_linear_distance +
> lv_twmpoint_est_rec.ln_span;
>
> --Set Point bid amount, if there are any.
>
> UPDATE TWMPOINT_EST
> SET AMT_FIXED_BID = svar_rec.work_pt_amt_bid
> WHERE CURRENT OF cur_get_twmpoint_est;
> END LOOP;
> END ;
>
> I need to update the "AMT_FIXED_BID" for the current row.
>
> Let me know if you need more information;
>
> Thanks in advance.
> Sridhar
Received on Mon Nov 19 2001 - 22:03:52 CET