2

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;

オラクルが「for rec in select * from dual」を見ると、「ループ」がすぐに続くことを期待しているようです。ループ内の私のコードは多くの行であり、その 2 つのコピーを維持する必要はありません。

4

1 に答える 1

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;
于 2012-11-14T22:28:44.943 に答える