0

私はカーソルに苦労しており、別のバージョンを試してみましたが、うまくいきませんでした。ここで助けを求めることにしました。IF条件を機能させるには? 何かを数えてから、この数が 10 より大きいかどうかを確認してから、何かを削除する必要があります。count(*) を IF 条件に渡して何かをする方法は? 前もって感謝します。

 DECLARE
  CURSOR MY_CURSOR
      IS

SELECT CSH.STATUSCHANGEDDATE AS STATUSCHANGEDDATE_, CSH.CUSTOMER AS CUSTOMER_ from        CUSTOMER_STATUSES csh WHERE 
csh.STATUSCHANGEDATE>SOME_DATE AND CSH.STATUS = 'X_STATUS'


 MY_RECORD MY_CURSOR%ROWTYPE;

    BEGIN
      OPEN MY_CURSOR;
      LOOP
        FETCH MY_CURSOR INTO MY_RECORD;
        EXIT
      WHEN MY_CURSOR%NOTFOUND;


SELECT COUNT(*) FROM SOME_TABLE WHERE SOME_DATE = STATUSCHANGEDDATE_ AND ....

    iF ABOVE_COUNT = 10 THEN
        DELETE * FROM SOME_TABLE2 WHERE SOME_CONDITION2
  ELSE 
 END IF

      END LOOP;
END LOOP;
 COMMIT;
END;
4

1 に答える 1

1

宣言する:

COUNT_VAR NUMBER(38);

体内:

SELECT COUNT(*) INTO COUNT_VAR
FROM SOME_TABLE 
WHERE SOME_DATE = STATUSCHANGEDDATE_ AND ....;

IF COUNT_VAR = 10 THEN
    DELETE * FROM SOME_TABLE2 WHERE SOME_CONDITION2;
END IF;
于 2013-02-04T22:32:36.520 に答える