adspace


Can we use bulk collect in oracle forms if yes then how?

Answer Posted / sudipta santra

Yes we can use bulk collect but in a too much trickery way,
if we can't access our nose straight then we have to bend
our hand to touch, that's what. Giving you as example step
by step,carefully try to get it, otherwise call me,
explain(+91-8951011605)

1. u will create type : (DB Level)
create or replace type blk_type_ex as object (
v varchar2(10),i number);
2. create or replace type blk_typ_frm as table of blk_type_ex;
3. In forms level in the trigger of
When-New-Instance/When-New-Block-Instance/When-New-Item-Instance
otherwise whatever the trigger is applicable for the
application specific , u create GTT as below:
create global temporary table GTT_vn (
v varchar2(10),
i number
) on commit preserve rows;
4. put the insertion code either in Post-Query or in
On-Commit trigger where the transaction was
occurred(insertion of rows) and which the datas are required
to be bulk collect.
5. Create DB/Form level function:
create or replace function f_blk_form return blk_typ_frm as
ret blk_typ_frm;
begin
execute immediate 'select blk_type_ex(v,i) from GTT_vn'||
'bulk collect into ret';

return ret;
end;
6.In particular trigger where U need to set the bulk collect
, there U need to set the code below:
declare
x blk_typ_frm;
begin
x := f_blk_form;
go_block(block_x);
first_record;
for r in (select * from table(cast(x as blk_typ_frm)))
loop
/*the below code */
:block_x.item1:=r.v;
:block_x.item2:=r.i;
next_record;
end loop;

end;
8. Compile +Run then Njoy. If u have any issue, then call me

Is This Answer Correct ?    4 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

in user parameter property we have list of values.can we write select query for binding? for example:: select empno from emp where deptno=:deptnum :deptnum is first parameter it displays distinct dept nos. if i do like this it is giving error:: bind variables are not allowed in the select statement

2227