小编Mav*_*ick的帖子

在Oracle中的游标声明查询中使用变量

有没有办法在游标声明sql中使用变量?例-

create or replace PROCEDURE PRD (IN_VAR  IN VARCHAR2)
IS

  V_V1 TABLE.DATE_COL%TYPE;

   /* Cursor decleration */
   CURSOR CUR_DUMMY
   IS
        SELECT COL1,COL2,COL3 
          FROM TABLE 
             WHERE DATE_COL BETWEEN V_V1 
                    AND V_V1+1;

BEGIN
   FOR REC  IN CUR_DUMMY
   LOOP

    SELECT TO_DATE(TO_CHAR(sysdate, 'DD-MON-YY') ||' '||(SELECT TO_CHAR(DAY_BEGIN,'HH24:MI:SS') FROM TABLE2),'DD-MON-YY HH24:MI:SS') INTO  V_V1 from DUAL;   

--  other stuffs
    END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

在这里,光标不会获取所需的记录。我可以在游标声明之前的某个位置分配V_V1值吗?虽然我可以在游标sql本身中获取日期,但是会有多余的select查询。有没有更好的办法 ?

oracle plsql cursor

2
推荐指数
1
解决办法
6300
查看次数

标签 统计

cursor ×1

oracle ×1

plsql ×1