• Oracle基础 存储过程和游标


    一、带游标的存储过程

      游标作为参数有两种类型:

      1、声明系统游标类型 SYS_REFCURSOR

      1)游标作为存储过程的参数:

    --带游标的存储过程
    CREATE OR REPLACE PROCEDURE PRO_EMP_IN(EMP_CUR SYS_REFCURSOR) AS
      V_NAME EMP.ENAME%TYPE;
      V_SAL  EMP.SAL%TYPE;
    BEGIN
      LOOP
        FETCH EMP_CUR
          INTO V_NAME, V_SAL;
        DBMS_OUTPUT.PUT_LINE('name:' || V_NAME || '   sal:' || V_SAL);
        EXIT WHEN EMP_CUR%NOTFOUND;
      END LOOP;
    END;

      调用带游标的存储过程:

    --调用带游标的存储过程
    DECLARE
      EMP_CUR SYS_REFCURSOR;
    BEGIN
      OPEN EMP_CUR FOR
        SELECT ENAME, SAL FROM EMP;
      PRO_EMP_IN(EMP_CUR => EMP_CUR);
      CLOSE EMP_CUR;
    END

      

      2)带输出游标的存储过程

    --SYS_REFCURSOR 带输出参数的系统游标类型
    CREATE OR REPLACE PROCEDURE PRO_EMP(EMP_CUR OUT SYS_REFCURSOR) AS
    BEGIN
      OPEN EMP_CUR FOR
        SELECT ENAME, SAL FROM EMP E;   --和查询语句绑定
    END;

      调用带输出游标的存储过程:  

    --调用带输出类型的游标的存储过程
    DECLARE
      V_NAME  EMP.ENAME%TYPE;
      V_SAL   EMP.SAL%TYPE;
      EMP_CUR SYS_REFCURSOR;    --声明系统游标类型
    BEGIN
      PRO_EMP(EMP_CUR => EMP_CUR);
      LOOP
        FETCH EMP_CUR INTO V_NAME, V_SAL;
        DBMS_OUTPUT.PUT_LINE('name:' || V_NAME || '   sal:' || V_SAL);
        EXIT WHEN EMP_CUR%NOTFOUND;
      END LOOP;
      CLOSE EMP_CUR;
    END;

      2、声明自定义游标类型。

      

  • 相关阅读:
    《BI项目笔记》挑选产出分析Cube
    《BI项目笔记》报到信息分析Cube
    详解jQuery each() 方法
    可编辑的select下拉框
    可编辑的select下拉框
    UML关系(泛化,实现,依赖,关联(聚合,组合))
    UML关系(泛化,实现,依赖,关联(聚合,组合))
    深入浅出UML图(三)
    深入浅出UML图(三)
    深入浅出UML类图(二)
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4217522.html
Copyright © 2020-2023  润新知