zoukankan      html  css  js  c++  java
  • 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、声明自定义游标类型。

      

  • 相关阅读:
    WebBrowser.ExecWB的完整说明
    jQuery选择器的灵活用法
    Nooice, 首次开通博客园
    【HDU】3663 Power Stations
    【HDU】4069 Squiggly Sudoku
    【FOJ】2076 SUDOKU
    【HDU】3529 Bomberman Just Search!
    【HDU】3909 Sudoku
    【HDU】2780 SuSuSudoku
    【HDU】3111 Sudoku
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4217522.html
Copyright © 2011-2022 走看看