i am geting an error Could not do a physical-order read to fetch next row just after execution of a procedure.in this procedure am checking some fields and at last am inserting some values to a particular table.just after the execution of this procedure i am selecting from the same table which we did insertion in procedure.in this selection am getting this error .how can i release this table just after the execution of procedure to do selection properly.
procedure is given below...
CREATE PROCEDURE savetabledetails(var_table_name char(20),var_row_id char(20),var_action_occured char(20))
DEFINE var_pkid_name char(20);
DEFINE var_column_name char(20);
DEFINE var_column_length char(20);
DEFINE i int;
DEFINE var_ar_pk_id char(20);
DEFINE var_ar_alert_id char(20);
DEFINE var_al_when char(20);
DEFINE var_al_numberof_days char(20);
DEFINE var_ba_pk_id char(20);
DEFINE var_query lvarchar(2000);
DEFINE var_query1 lvarchar(2000);
LET i = 0;
select first 1 colname into var_pkid_name from syscolumns where tabid=(select tabid from systables where tabname=var_table_name);
foreach select colname into var_column_name from syscolumns where tabid=(select tabid from systables where tabname=var_table_name)
FOREACH SELECT ar_pk_id ,ar_alert_id INTO var_ar_pk_id,var_ar_alert_id FROM bam_alert_rule where (ar_l_table_name=var_table_name and ar_l_field= var_column_name) or (ar_r_table_name=var_table_name and ar_r_field= var_column_name)
IF( var_ar_pk_id is not null and var_ar_alert_id is not null ) then
select ba_pk_id into var_ba_pk_id from bam_alert_actions where ba_alert_id=var_ar_alert_id and ba_action_id like ""||var_action_occured||"";
if(var_ba_pk_id is not null) then
select al_when,al_numberof_days into var_al_when ,var_al_numberof_days from bam_alerts where al_pk_id=var_ar_alert_id;
insert into bam_alert_table_details(bat_pk_id,bat_alert_id,bat _table_name,bat_field_name,bat_row_id,bat_alert_st atus,bat_name_pkid,bat_action_occured,bat_alert_wh en,bat_no_of_days)values(bam_changed_table_details _seq.NEXTVAL,var_ar_alert_id,var_table_name,var_co lumn_name,var_row_id ,'Pending',var_pkid_name,var_action_occured,var_al _when,var_al_numberof_days);
end if;
END IF;
END FOREACH;
END FOREACH;
END PROCEDURE;
someone please help me...its very urgent