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 rec in select * from Dual”时,它期望“loop”立即跟随。我的循环中的代码有很多行,我不想维护它的 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;
关于plsql - oracle 10g pl/sql 条件for循环选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388450/