首页 > 解决方案 > 调用带有 out 参数的 SP

问题描述

我有一个如下定义的存储过程:

PROCEDURE GetAccessRights(AAccessRights OUT CURSOR_TYPE) AS
BEGIN
  OPEN AAccessRights FOR
    SELECT  AccessRightID, AccessUnitID, AccessObjectID, GrantRights, DenyRights
    FROM    AccessRights;
END;

然后我尝试从 SQL Developer 调用它:

DECLARE
  QPZ    DDKPROD.DDK.CURSOR_TYPE;
  ACCESSRIGHTID   AccessRights.ACCESSRIGHTID%TYPE;
  ACCESSUNITID    AccessRights.ACCESSUNITID%TYPE;
  ACCESSOBJECTID  AccessRights.ACCESSOBJECTID%TYPE;
  GRANTRIGHTS     AccessRights.GRANTRIGHTS%TYPE;
  DENYRIGHTS      AccessRights.DENYRIGHTS%TYPE;
BEGIN

  DDK.GETACCESSRIGHTS(qpz);

  LOOP
    FETCH 
      QPZ INTO ACCESSRIGHTID, ACCESSUNITID, ACCESSOBJECTID, GRANTRIGHTS, DENYRIGHTS;
    EXIT 
      WHEN QPZ%NOTFOUND;

    DBMS_OUTPUT.PUT_LINE(ACCESSRIGHTID || '     ' || ACCESSUNITID);
  END LOOP;  

  CLOSE QPZ;

END;

我的问题是我得到的唯一输出是以下消息:

匿名块完成

我的 AccessRights 中有 80 行。为什么我没有在我的循环中列出它们

标签: oracle

解决方案


推荐阅读