你好我有点困惑,我在这个函数中的游标只返回最上面一行。为什么我的游标只返回最上面一行?
我一直在比较它的几个不同的例子,我见过,我只是没有看到有什么不对。任何指导非常感谢。
FUNCTION FS_A_FUNCTION
(
inDate DATE
)
RETURN VARCHAR2 IS
tAnswer VARCHAR2(1) := 'N';
tDates DATE;
CURSOR c1 IS
SELECT S.Dates FROM A_TABLE S;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO tDates;
EXIT WHEN c1%NOTFOUND;
END LOOP;
CLOSE c1;
IF inDate IN (tDates) THEN
tAnswer := 'Y';
END IF;
RETURN (tAnswer);
END FS_A_FUNCTION
在此先感谢。
这不是正确的解决方案。如果'inDate'没有找到匹配项而不是返回所需的'tAnswer ='N'',它会抛出NO_DATA_FOUND。 – APC 2012-04-14 06:12:45
@APC - 即使使用'max'?我将不得不在稍后尝试。无论如何,捕捉异常可能会更整洁(或更清晰的意图)。 – 2012-04-14 06:27:58
不,你说得对。我错过了MAX()的意义 – APC 2012-04-14 13:17:28