我是PL / SQL& amp;的新手非常感谢这方面的帮助。我已经创建了一个复制合同的程序。现在我想从这个程序中调用另一个程序,该程序将复制与我正在复制的合同相关的所有程序。一份合同可以有多个程序。
答案 0 :(得分:0)
你使用PackageName.ProcedureName(vcParameters => 'InputParameter1');
来调用另一个程序包中的另一个程序
如果程序在同一个程序包中,你可以在没有PackageName
的情况下执行,所以只需{{ 1}}
答案 1 :(得分:0)
您只需将过程的名称和参数放在代码中即可调用过程,例如
begin
dbms_output.put_line('Demo');
end;
或在过程中
create or replace procedure demo
as
begin
dbms_output.put_line('Demo');
end;
我已经使用dbms_output.put_line
作为过程的示例,但显然其他任何过程也将以相同的方式调用:
begin
foo;
bar(1);
demo(true, 'Bananas', date '2018-01-01');
end;
由于某些原因,许多初学者都倾向于在过程调用之前添加exec
。我不知道那是从哪里来的,因为PL / SQL没有这样的关键字。他们可能正在考虑使用SQL * Plus execute
命令,该命令可以缩写为exec
。但是,SQL * Plus是一个单独的命令行实用程序,具有自己的与PL / SQL语言无关的命令。