如何执行包内的程序?

时间:2015-05-15 09:31:32

标签: oracle plsql packages procedures

有一个包ABC,里面有很多程序。我想在其中执行一个程序(比如xyz)。我使用了以下命令

begin
ABC.xyz;
end;

我无法运行。任何人都可以帮忙,因为我得到了意想不到的符号" BEGIN"错误

3 个答案:

答案 0 :(得分:4)

创建包规范:

create or replace package pkg is
procedure xyz;
end;

创建包体

create or replace package body pkg is
procedure xyz is
dbms_output.put_line('hi');
end
end;

<强>执行

exec pkg.xyz

begin
pkg.xyz;
end;

现在,验证您的代码,看看您的代码中出错了什么。

答案 1 :(得分:2)

  

我想在其中执行一个程序(比如xyz)

如果您已将程序添加到包规范,则可以从包中调用该过程。

来自文档,

  

包规范包含公共声明。这些范围   声明是数据库模式的本地化,是全局的   包。因此,可以从您的应用程序访问声明的项目   从包装的任何地方。

将程序添加到软件包规范后,可以在 PL / SQL块中将程序作为package.procedure调用:

begin
   ABC.xyz;
end;

或者,在 SQL * Plus

EXECUTE ABC.xyz;

答案 2 :(得分:0)

要添加上述优秀答案:在某些情况下,只能通过特定用户帐户访问该程序包。在out out中,我们有管理员和应用程序用户可以访问特定的模式和数据,以便我们的应用程序共享一个Oracle安装。只需添加存储包和表的用户名即可。

开始 user.pkg.xyz; 端;