在where子句中使用游标中的变量for循环

时间:2015-05-26 08:20:13

标签: sql oracle for-loop cursor

我在Oracle上做了一些SQL,我发现了一些奇怪的东西 我有一个FOR循环遍历日期列表(存储为VARCHAR2):

FOR current_date in (SELECT DISTINCT DATCRE as datcre
                     FROM EVE cdv
                     WHERE cdv.datcre BETWEEN p_datedeb AND p_datefin)
LOOP
    [queries]
END LOOP;

我需要在以下查询的where子句中使用current_date

SELECT COUNT(cdv.numeve)
INTO nb
FROM EVE cdv
WHERE cdv.datcre = current_date.datcre;

此查询无效,我收到ORA-00933: SQL command not properly ended 现在,如果我声明一个curDate VARCHAR2(10)变量,将current_date.datcre存储在其中并在查询中使用它,它可以正常工作:

curDate := (current_date.datcre);

SELECT COUNT(cdv.numeve)
INTO nb
FROM EVE cdv
WHERE cdv.datcre = curDate;

我是否遗漏了某些内容,或者这只是Oracle的工作方式?

0 个答案:

没有答案