【发布时间】:2015-07-27 04:10:37
【问题描述】:
里面有一个包ABC,里面有很多程序。我想在其中执行一个过程(比如 xyz)。我使用了以下命令
begin
ABC.xyz;
end;
我不能运行相同的。任何人都可以帮忙,因为我遇到了意外的符号“BEGIN”错误
【问题讨论】:
-
试试
execute ABC.xyz
标签: oracle plsql packages procedures
里面有一个包ABC,里面有很多程序。我想在其中执行一个过程(比如 xyz)。我使用了以下命令
begin
ABC.xyz;
end;
我不能运行相同的。任何人都可以帮忙,因为我遇到了意外的符号“BEGIN”错误
【问题讨论】:
execute ABC.xyz
标签: oracle plsql packages procedures
创建包规范:
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;
现在,验证您的代码,看看您在代码中做错了什么。
【讨论】:
我想在其中执行一个过程(比如 xyz)
只有将包添加到包规范,才能从包中调用过程。
来自文档,
包规范包含公共声明。这些范围 声明对于您的数据库架构是本地的,对于 包裹。因此,声明的项目可以从您的应用程序中访问 以及从包中的任何位置。
将过程添加到包规范后,您可以在 PL/SQL 块中将过程称为 package.procedure:
begin
ABC.xyz;
end;
或者,在 SQL*Plus 中:
EXECUTE ABC.xyz;
【讨论】:
补充上面的好答案:在某些情况下,只能通过特定的用户帐户访问包。在 out setup 中,我们拥有可以访问特定模式和数据的管理员和应用程序用户,以便我们的应用程序共享一个 Oracle 安装。只需添加存储包和表的用户名即可。
开始 用户.pkg.xyz; 结束;
【讨论】: