有一个包ABC,里面有很多程序。我想在其中执行一个程序(比如xyz)。我使用了以下命令
begin
ABC.xyz;
end;
我无法运行。任何人都可以帮忙,因为我得到了意想不到的符号" BEGIN"错误
答案 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; 端;