U may use "pivot" tables method for ur problem:
1. create some type of numbers
2. create "pivot" function that has to return list of order ids.
3. use table(cast()) construction for return needed result
example:
Code:
create or replace type tb_orders as table of number;
create or replace
function get_orders_id( id_start number, id_end date ) return tb_orders is
tb tb_orders := tb_orders();
j pls_integer := 0;
i pls_integer := 0;
begin
for i in id_start..id_end loop
j := j + 1;
tb(j) := i;
end loop;
return tb;
end;
/
Then u can use selects like following:
Code:
select *
from ur_order_table o,
table(cast(get_orders_id(2300003,2300203) as tb_orders)) t
where t.column_value = o.order_id;
or
Code:
select * from ur_order_table o
where o.order_id in table(cast(get_orders_id(2300003,2300203) as tb_orders))
for update of o.order_info;