Oracle中具有函数的简单包处于无效状态

时间:2014-04-29 10:43:44

标签: sql oracle oracle11g

我正在阅读有关软件包的内容,我想开始创建一个新函数,它有一个返回一些数字的函数。我做了类似的事情:

CREATE OR REPLACE PACKAGE KP_XYZ_TEST_SQL AS
  FUNCTION CONTAINS() RETURN NUMBER;
END KP_XYZ_TEST_SQL;

CREATE OR REPLACE PACKAGE BODY KP_XYZ_TEST_SQL AS
  FUNCTION CONTAINS() RETURN NUMBER AS
  BEGIN

   RETURN 1;

  END CONTAINS;
END KP_XYZ_TEST_SQL;

一切似乎都很好,包装和包装体都已创建。但是当我尝试执行CONTAINS()时,我收到错误:ORA-06576: Package or function KP_XYZ_TEST_SQL is in invalid state

这就是我尝试执行我的功能的方式:

SELECT KP_XYZ_TEST_SQL.CONTAINS() FROM DUAL;

1 个答案:

答案 0 :(得分:2)

试试这个:

CREATE OR REPLACE PACKAGE KP_XYZ_TEST_SQL AS
  FUNCTION CONTAINS RETURN NUMBER;
END KP_XYZ_TEST_SQL;
/
CREATE OR REPLACE PACKAGE BODY KP_XYZ_TEST_SQL AS
  FUNCTION CONTAINS RETURN NUMBER AS
  BEGIN

   RETURN 1;

  END CONTAINS;
END KP_XYZ_TEST_SQL;

你不应该使用"()"如果函数不包含参数,则在函数名之后。