在过程中调用另一个PL / SQL过程

时间:2016-08-09 05:42:16

标签: oracle plsql packages procedures

我是PL / SQL& amp;的新手非常感谢这方面的帮助。我已经创建了一个复制合同的程序。现在我想从这个程序中调用另一个程序,该程序将复制与我正在复制的合同相关的所有程序。一份合同可以有多个程序。

2 个答案:

答案 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语言无关的命令。