我们可以在没有规范的情况下在oracle中创建一个包吗?反之亦然

Man*_*u B 5 oracle plsql

Oracle 包由两部分组成:规范和主体

在甲骨文中

我们可以创建一个没有主体的包规范吗?

我们可以创建一个没有规范的包体吗?

Jef*_*emp 6

我们可以创建一个没有主体的包规范吗?

是的,当包仅包含变量和/或类型声明时,这些非常有用,例如

CREATE PACKAGE no_body AS
  gc_yes CONSTANT VARCHAR2(1) := 'Y';
END;
Run Code Online (Sandbox Code Playgroud)

我们可以创建一个没有规范的包体吗?

是的,可以,但它不是很有用,因为它将无效并且无法使用,例如:

CREATE PACKAGE BODY no_spec AS
  PROCEDURE myproc AS BEGIN null; END;
END no_spec;
/
Run Code Online (Sandbox Code Playgroud)

在您为其编译包规范之前,包主体将不可用。


smn*_*brv 3

答案很简单:

规格 - 是的。正文 - 否(它将被创建但无效)。

  • 是的...[如文档所述](http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/packages.htm#LNPLS00901),“包总是有一个规范”和“如果公共项包括游标或子程序,那么包也必须有一个主体'。 (2认同)