小编mrH*_*and的帖子

在PL / SQL中执行具有功能的Oracle软件包

有没有办法在Oracle PL / SQL中执行包功能?

这是带有函数的示例包,该函数返回参考光标:

create or replace PACKAGE "PKG_PACKAGE1"
AS
    TYPE CURS_OUT IS REF CURSOR;
    FUNCTION fnc_PACKAGE1(PARAM1 VARCHAR2, PARAM2 INT) RETURN CURS_OUT;
 END "PKG_PACKAGE1";


create or replace PACKAGE BODY "PKG_PACKAGE1"
AS
FUNCTION fnc_PACKAGE1(PARAM1 VARCHAR2, PARAM2 INT) RETURN CURS_OUT
AS
    RUNCURS CURS_OUT;
        BEGIN
            OPEN  RUNCURS FOR
                SELECT 'Data Returned' FROM DUAL;
            RETURN RUNCURS;
            END;
END "PKG_PACKAGE1";
Run Code Online (Sandbox Code Playgroud)

这是我想使用SQL Developer Tools在PL / SQL中执行的方法:

 BEGIN
   :returnRes := PKG_PACKAGE1.FNC_PACKAGE1(:PARAM1,:PARAM2);
 END;
Run Code Online (Sandbox Code Playgroud)

要么

Declare 
returnRes Varchar2(200);
BEGIN
   returnRes := PKG_PACKAGE1.FNC_PACKAGE1(:PARAM1,:PARAM2);
END;
Run Code Online (Sandbox Code Playgroud)

当我运行任何一个时,我都会收到错误消息:PLS-00382:表达式类型错误。当我通过向导运行程序包时,它将返回值。

有没有一种特定的方式来执行软件包,或者不可能?

谢谢。

oracle plsql plsqldeveloper

0
推荐指数
1
解决办法
120
查看次数

标签 统计

oracle ×1

plsql ×1

plsqldeveloper ×1