user584583
user584583

Reputation: 1280

oracle 10g pl/sql conditional for loop select

Is it possible to do something like this in PL/SQL in 10g?

if user_is_goat = 1 then
  for item_rec in (select * from pricing_for_goats)
else 
  for item_rec in (select * from pricing_for_non_goats)
end if;
loop
.
.
end loop;

It seems that when oracle sees "for rec in select * from dual" it expects "loop" to immediate follow. My code in the loop is many lines and I don't want to have to maintain 2 copies of it.

Upvotes: 2

Views: 620

Answers (1)

rs.
rs.

Reputation: 27427

Try query below, this will check if variable user_is_goat = 1 and returns data from for_goats else it will return from for_non_goats

for item_rec in 
(
  select * from pricing_for_goats where user_is_goat = 1
  union
  select * from pricing_for_non_goats where user_is_goat <> 1
)
loop
.....
.....
end loop;

Upvotes: 2

Related Questions