2017-07-28 121 views
-1

當我嘗試基於另一個表列值更新少數表ebtries時,我遇到以下問題。執行PL/SQL條件語句時出現問題

PL/SQL查詢:

DECLARE 
    buildVal NUMBER; 
BEGIN 
    SELECT BUILDVERSION 
    INTO buildVal 
    FROM WCSDBA.BUILDDETAILS 
    WHERE BUILDID =1; 
    IF (buildVal = 0) THEN 
     UPDATE WCSDBA.BUILDDETAILS 
      set BUILDVERSION = 1, 
       BUILDDESCRIPTION = 'FirstVersion' 
      WHERE BUILDID =1; 
     commit; 
    END IF; 
END; 

例外:

Query failed because: 
ORA-06550: line 9, column 3: 
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ; The symbol ";" was substituted for "end-of-file" to continue. 

在同一

+0

我認爲各種修訂和編輯可能已經失去了原始錯誤和行號。你最初在第二次更新過程中出現了「AND」雜項的語法錯誤,並且在END IF之後丟失了';'。這兩個現在都走了,第9行是'UPDATE'。你能確認當前的錯誤信息和行號嗎? –

回答

1
DECLARE 
    buildVal NUMBER; 
BEGIN 
    SELECT BUILDVERSION INTO buildVal FROM WCSDBA.BUILDDETAILS WHERE BUILDID =1; 
    IF (buildVal = 0) THEN 
     UPDATE WCSDBA.student set stVersion =1; 
     UPDATE WCSDBA.BUILDDETAILS set BUILDVERSION = 1, BUILDDESCRIPTION = 'FirstVersion' WHERE BUILDID =1; --in this line 
     commit; 
    END IF; -- here 
END; 

任何幫助或建議,試試這個,請,你忘了分號後END IF和分隔的更新列由and代替逗號

+0

嘗試了您的建議,但仍然遇到問題。在問題中更新了查詢和異常。我錯過了其他任何東西 –

+0

@SQLLearner您確定您已正確連接到數據庫嗎?因爲當我在我的db中運行這個腳本時,我沒有得到關於語法的任何異常,只有那個說我沒有這些表的語句,這意味着語法是OK – Hatik