【发布时间】:2016-06-15 10:11:26
【问题描述】:
我想从表中选择一个 for 循环的最终值,如下所示: MyTable 看起来像这样: ('Me',1) ('You',2)
for i in 1..(SELECT MyID from MyTable where MYName = 'Me')
但我在 SELECT 出现的地方收到错误消息。
【问题讨论】:
我想从表中选择一个 for 循环的最终值,如下所示: MyTable 看起来像这样: ('Me',1) ('You',2)
for i in 1..(SELECT MyID from MyTable where MYName = 'Me')
但我在 SELECT 出现的地方收到错误消息。
【问题讨论】:
您需要定义上限。使用这样的东西:
declare
my_upper number;
begin
select count(*) into my_upper
from MyTable where MYNAME = 'Me';
for i in 1..my_upper loop
... do something here ...
end loop;
end;
见:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#LNPLS004
【讨论】:
declare my_upper number; begin select MyID into my_upper from MyTable where MYNAME = 'Me'; for i in 1..my_upper loop ... do something here ... end loop; end; 它奏效了。
如果您知道您将始终返回一行,请使用select into:
select myid into my_upper
from mytable
where namename = 'M';
【讨论】: