我正在阅读有关软件包的内容,我想开始创建一个新函数,它有一个返回一些数字的函数。我做了类似的事情:
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;
答案 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;
你不应该使用"()"如果函数不包含参数,则在函数名之后。