【发布时间】:2017-05-10 13:14:15
【问题描述】:
有没有办法在游标声明 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;
这里的游标没有获取所需的记录。 我可以在游标声明之前的某处分配 V_V1 值吗? 虽然我可以在游标 sql 本身中获取日期,但会有多余的选择查询。有没有更好的办法 ?
【问题讨论】:
-
你的例子行不通。因为在将值分配给
V_V1之前,您已经执行了select。所以在你的选择中 V_V1 是 NULL。