Select u PLSQL-u gde je uslov sadrzaj iz table type-a
26.05.2011. u 21:00 · pre 187 meseci
#1
Cilj mi je da rezultat kursora, a na kraju i neki update, odradim pomoću nekog niza (type) pošto verujem da će se tako brže izvršiti nego da obrađujem podatak jedan po jedan i tako svaki put otvaram i zatvaram kursor.
Da li je izvodljivo ovako nešto?
Code:
create or replace procedure proc_test is
type t_loc is table of varchar2(30);
lt_loc t_loc;
-- Cilj mi je da izvedem ovako nesto
cursor cr1 (cp_tab in t_loc) is
select *
from tabela
where id in cp_tab;
r1 cr1%rowtype;
-- Kursor koji sada koristim
cursor cr2 (cp_id in number) is
select *
from tabela
where id = cp_id;
r2 cr2%rowtype;
begin
lt_loc := new t_loc();
/*
Ovde formiram sadrzaj u lt_loc
*/
for r1 in cr1(lt_loc) loop
--- NESTO RADIM SA RECORDIMA
end loop;
-- Na kraju mi je cilj ovako nesto
update tabela
set kolona1 = 'neki podatak'
where id in lt_loc;
end proc_test;
create or replace procedure proc_test is
type t_loc is table of varchar2(30);
lt_loc t_loc;
-- Cilj mi je da izvedem ovako nesto
cursor cr1 (cp_tab in t_loc) is
select *
from tabela
where id in cp_tab;
r1 cr1%rowtype;
-- Kursor koji sada koristim
cursor cr2 (cp_id in number) is
select *
from tabela
where id = cp_id;
r2 cr2%rowtype;
begin
lt_loc := new t_loc();
/*
Ovde formiram sadrzaj u lt_loc
*/
for r1 in cr1(lt_loc) loop
--- NESTO RADIM SA RECORDIMA
end loop;
-- Na kraju mi je cilj ovako nesto
update tabela
set kolona1 = 'neki podatak'
where id in lt_loc;
end proc_test;
Da li je izvodljivo ovako nešto?