Oracle游标使用

Posted killer-leon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle游标使用相关的知识,希望对你有一定的参考价值。

--定义游标
DECLARE
  CURSOR C_STEP
  IS
    SELECT PP.ID AS ID
    FROM P_PROLIFE_STEP PS
    INNER JOIN P_PROJECT PP
    ON PS.P_PROJECT_ID=PP.ID
    WHERE PS.MODULE   >'79'
    AND PS.PRO_STAGE >='300'
    AND PP.ID NOT    IN
      (SELECT P_PROJECT_ID FROM P_PROLIFE_STEP WHERE MODULE ='92'
      )
  GROUP BY PP.ID ;
  C_PROJECT_ID C_STEP%ROWTYPE;
BEGIN
  --打开游标
  OPEN C_STEP;
  --循环读取游标值
  LOOP
    FETCH C_STEP INTO C_PROJECT_ID;
    EXIT
  WHEN C_STEP%NOTFOUND;
    --使用游标变量
    INSERT
    INTO P_PROLIFE_STEP
      (
        ID,
        P_PROJECT_ID,
        STATUS,
        MODULE,
        GMT_DATE,
        GMT_MODIFIED,
        GMT_CREATE,
        CREATOR,
        MODIFIER,
        IS_DELETED,
        PRO_STAGE,
        IS_HISTORY
      )
      VALUES
      (
        SEQ_P_PROLIFE_STEP_ID.NEXTVAL,
        C_PROJECT_ID.ID,
        '34',
        '92',
        sysdate,
        sysdate,
        sysdate,
        'system',
        'system',
        'n',
        '300',
        'n'
      );
  END LOOP;
  --关闭游标
  CLOSE C_STEP;
END;

以上是关于Oracle游标使用的主要内容,如果未能解决你的问题,请参考以下文章

oracle中游标的使用?

oracle游标怎么使用?创建完了 怎么用?

oracle游标的使用

oracle 游标是做啥用的

快速掌握Oracle数据库游标的使用方法有哪些?

oracle如何关闭游标?