是否可以在10g的PL / SQL中执行类似的操作?
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;
似乎当oracle看到“for select in from double”时,它希望“循环”立即跟随。循环中的代码很多行,我不想保留它的2个副本。
答案 0 :(得分:2)
尝试下面的查询,这将检查变量user_is_goat = 1
是否从for_goats
返回数据,否则它将从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;