今天我試圖在匿名塊內創建一個序列。我的要求是當序列達到最大值時,它應該自動刪除。所以,我已經執行了下面的代碼,但它顯示錯誤,如「PL/SQL:ORA-02289:序列不存在」。不能在PLSQL的匿名塊中創建和刪除序列
CODE:
DECLARE
V_NUM NUMBER:=0;
V_QUERY VARCHAR2(2000);
CNT NUMBER := 0;
BEGIN
V_QUERY:= 'CREATE SEQUENCE SEQ_GEN START WITH 100 INCREMENT BY 10 MAXVALUE 200';
EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_GEN';
EXECUTE IMMEDIATE V_QUERY;
FOR I IN 1..11 LOOP
SELECT SEQ_GEN.NEXTVAL INTO V_NUM FROM DUAL;
DBMS_OUTPUT.PUT_LINE(V_NUM);
IF V_NUM >= 200 THEN
EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_GEN';
DBMS_OUTPUT.PUT_LINE('sequence has reached maximum value');
END IF;
END LOOP;
SELECT COUNT(1) INTO CNT FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_GEN';
DBMS_OUTPUT.PUT_LINE(CNT);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
任何人都可以幫助我解決這個問題嗎?
第7行嘗試在第8行創建序列之前刪除序列。爲了幫助調試,請刪除該異常塊。默認情況下,Oracle會停止執行並打印錯誤和行號,這應該很快指出問題所在。 –