2017-07-28 48 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