[PL/SQL]如何创建运行多个过程的循环

[PL/SQL]how to make a loop that runs multiple procedures

假设我有一个程序列表 p1,p2,p3..pn ,每个程序只有一个输出数字参数,基本上每个程序都是一个常数。我如何创建一个循环来运行所有这些过程并将结果显示在屏幕上?我尝试使用 EXECUTE IMMEDIATE 类似的东西:

DECLARE
 i number;
 n number:=5;
 print number;
begin
 for i in 1 .. n loop
  EXECUTE IMMEDIATE 'BEGIN p'||i||'('||print||') END;' ;
  dbms_output.put_line(print);
 end loop;
end;

我还尝试了 [EXECUTE IMMEDIATE sql_stmt INTO print USING i]
形式 但是我什么都没做

它是 BEGIN myprocedure; END; - 你漏掉了“;”在程序调用之后。目前还不清楚你想要“打印”做什么,它没有在任何地方声明,所以它只会打印一个空值。

CREATE OR REPLACE procedure p1
AS
BEGIN
  dbms_output.put_line('this is 1');
END;
/
CREATE OR REPLACE procedure p2
AS
BEGIN
  dbms_output.put_line('this is 2');
END;
/
DECLARE
 n number:=2;
begin
 for i in 1 .. n loop
  EXECUTE IMMEDIATE 'BEGIN p'||i||'; END;' ;
 end loop;
end;
/

this is 1

this is 2