(Oracle の) カーソル内にある SELECT COUNT(*) ステートメントの行数を取得する必要があります。
次のコードはそれを明確に説明する必要があります。
PROCEDURE Save(CF_CURSOR OUT "VPA"."CF_#Runtime".CF_CURSOR_TYPE) AS
V_CF_CURSOR "VPA"."CF_#Runtime".CF_CURSOR_TYPE;
CF_ROWCOUNT NUMBER;
BEGIN
OPEN V_CF_CURSOR FOR
SELECT COUNT(*) INTO CF_ROWCOUNT FROM (
SELECT * FROM "VPA"."Employee" -- returns 1 row
) WHERE ROWNUM <= 1;
IF(CF_ROWCOUNT = 0) THEN
-- DO SOMETHING BUT NEVER GOES HERE
END IF;
COMMIT;
CF_CURSOR := V_CF_CURSOR;
END;
ここで、CF_ROWCOUNT の値は設定されません。カーソルを削除すると、すべてが期待どおりに機能します。SQL%ROWCOUNT を使用しようとしましたが、どちらも機能しません。そして、カーソルを削除できません...
前もって感謝します!