Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
foreach循环的Oracle-PL等价物_Oracle_Loops_Plsql - Fatal编程技术网

foreach循环的Oracle-PL等价物

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; 端环; 终

我需要循环大约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.

唉,这是多么可怕的骇客二元体的无底洞啊,不是吗?唉,这是多么可怕的骇客二元体的无底洞啊,不是吗?“括号?”米哈尔特。“括号?”米哈尔特。