暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 我们可以像在Java中一样在PL/SQL中创建嵌套包吗?

askTom 2018-01-16
406

问题描述

我们可以像在Java中一样在PL/SQL中创建嵌套包吗?我的意思是我们可以在Oracle PL/SQL 11g中创建一个包吗?

专家解答

不:

create or replace package pkg as 
  package pkg_nested as 
    var integer;
  end;
end;
/
sho err

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/22     PLS-00103: Encountered the symbol "AS" when expecting one of the following:
         := . ( @ % ; not null range default character
5/1      PLS-00103: Encountered the symbol "END"

create or replace package pkg as 
  var int;
end;
/
sho err

No errors.

create or replace package body pkg as 
  package pkg_nested as 
    var integer;
  end;
end;
/
sho err

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/22     PLS-00103: Encountered the symbol "AS" when expecting one of the following:
         := . ( @ % ; not null range default character
5/1      PLS-00103: Encountered the symbol "END"
复制


但是您可以在彼此之间嵌套过程和函数:

create or replace procedure p as
  procedure p_nest as
    procedure p_nest2 as
      procedure p_nest3 as
      begin
        dbms_output.put_line('Nested');
      end p_nest3;
    begin
      p_nest3();
    end p_nest2;
  begin
    p_nest2();
  end p_nest;

begin
  p_nest();
end p;
/

exec p();

Nested
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论