foreach循环的Oracle-PL等价物
我需要循环大约10个字符串,它们都是我事先知道的-我不需要从任何地方选择它们 我试图: 开始 对于“一”、“二”、“三”中的制表符 环 立即执行“删除表”| |选项卡; 端环; 终止 但这不起作用循环是意外的 有办法做到这一点吗?declare t_型字符串为varchar2100表; 字符串t_strings:=t_strings'one','two','three'; 开始 对于1..strings.count循环中的i dbms_output.put_linestringsi; 端环; 终止 / 结果:foreach循环的Oracle-PL等价物,oracle,loops,plsql,Oracle,Loops,Plsql,我需要循环大约10个字符串,它们都是我事先知道的-我不需要从任何地方选择它们 我试图: 开始 对于“一”、“二”、“三”中的制表符 环 立即执行“删除表”| |选项卡; 端环; 终止 但这不起作用循环是意外的 有办法做到这一点吗?declare t_型字符串为varchar2100表; 字符串t_strings:=t_strings'one','two','three'; 开始 对于1..strings.count循环中的i dbms_output.put_linestringsi; 端环; 终
one
two
three
或者您可以使用自己的快捷功能:
顺便说一句,Oracle 21为for-LOOP提供了一些新功能:
因此,可以将其改写为:
声明
t_型字符串为varchar2100表;
开始
对于t_字符串'one','two','three'循环值中的str
dbms_output.put_linestr;
端环;
终止
/
声明
t_型字符串为varchar2100表;
字符串t_strings:=t_strings'one','two','three';
开始
对于1..strings.count循环中的i
dbms_output.put_linestringsi;
端环;
终止
/
结果:
one
two
three
或者您可以使用自己的快捷功能:
顺便说一句,Oracle 21为for-LOOP提供了一些新功能:
因此,可以将其改写为:
声明
t_型字符串为varchar2100表;
开始
对于t_字符串'one','two','three'循环值中的str
dbms_output.put_linestr;
端环;
终止
/
几乎真实的foreach循环:
declare
type tabList is table of varchar2(32);
tabs tabList := tabList ('one', 'two', 'three');
curr varchar2(32) := tabs.first;
begin
<<foreach>> loop exit foreach when curr is null;
execute immediate 'create table '||tabs(curr)||' (col char(1))';
execute immediate 'drop table '||tabs(curr)||' purge';
curr := tabs.next (curr);
end loop;
end;
/
PL/SQL procedure successfully completed.
几乎真实的foreach循环:
declare
type tabList is table of varchar2(32);
tabs tabList := tabList ('one', 'two', 'three');
curr varchar2(32) := tabs.first;
begin
<<foreach>> loop exit foreach when curr is null;
execute immediate 'create table '||tabs(curr)||' (col char(1))';
execute immediate 'drop table '||tabs(curr)||' purge';
curr := tabs.next (curr);
end loop;
end;
/
PL/SQL procedure successfully completed.
唉,这是多么可怕的骇客二元体的无底洞啊,不是吗?唉,这是多么可怕的骇客二元体的无底洞啊,不是吗?“括号?”米哈尔特。“括号?”米哈尔特。