带有IF的Oracle游标,需要帮助



我遇到了一个光标问题,尝试了不同的版本,但没有成功,决定在这里寻求帮助。如何使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;

在声明中:

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;

最新更新