問題

 DECLARE
    COUNT   NUMBER;
    prime   NUMBER;
    SUM     NUMBER;
    i       NUMBER;
    j       NUMBER;
BEGIN
    SUM := 2;
    COUNT := 0;
    prime := 1;
    i := 3;

    WHILE COUNT < 10
    LOOP
        j := i / 2;

        FOR k IN 2 .. j
        LOOP
            IF i MOD j = 0
            THEN
                prime := 0;
            END IF;

            IF prime = 1
            THEN
                SUM := SUM + i;
                COUNT := COUNT + 1;
            END IF;
        END LOOP;

        i := i + 1;
    END LOOP;

    DBMS_OUTPUT.put_line (SUM);
END;
/
 

我正在嘗試計算前10個素數.我寫了上面的程式碼,但是當我嘗試執行它時,它會丟擲錯誤:

ORA-06550:第29行,第12欄:
PLS-00103:遇到符號 當期待以下一個時“”:(此錯誤對應 到我遞增和的值的行.

  最佳答案

COUNTSUM 是保留的關鍵字,不能被選為 variable-names。

新增字首“v”:

 DECLARE
    vCOUNT   NUMBER;
    prime   NUMBER;
    vSUM     NUMBER;
    i       NUMBER;
    j       NUMBER;
BEGIN
    vSUM := 2;
    vCOUNT := 0;
    prime := 1;
    i := 3;

    WHILE vCOUNT < 10
    LOOP
        j := i / 2;

        FOR k IN 2 .. j
        LOOP
            IF i MOD j = 0
            THEN
                prime := 0;
            END IF;

            IF prime = 1
            THEN
                vSUM := vSUM + i;
                vCOUNT := vCOUNT + 1;
            END IF;
        END LOOP;

        i := i + 1;
    END LOOP;

    DBMS_OUTPUT.put_line (vSUM);
END;
/
 

這裡有一篇關於plsql中naming-conventions的好文章: https://www.guru99.com/pl-sql-identifiers.html

error-message “期待”(‘”)顯示您的資料庫想要像“SUM(someValue)”這樣的東西. 一個例子是這樣的:

 SELECT SUM(col1) FROM mytable
 

  相同標籤的其他問題

plsql