[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
假设我有一个程序列表 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