在ORACLE查询中的UPDATE中使用CASE时缺少关键字

时间:2015-03-05 10:49:39

标签: sql oracle oracle11g

MY_TABLE有以下专栏 ELEMENT_ID号码(9) SEQ_NAME VARCHAR2(30)

我想根据下面的逻辑更新表中所有行的ELEMENT_ID列的值,我已经写了一个' case' UPDATE查询中的语句。但是,当我运行此查询时,我收到错误

ORA-00900:无效的SQL语句

光标进入' 2'在第一次那时。

有人可以帮助找出问题所在吗?

UPDATE MY_TABLE
    SET MY_TABLE.ELEMENT_ID = (
        CASE MY_TABLE.SEQ_NAME 
            WHEN  'APD' 
                THEN ((APD_SQ.NEXTVAL * 10) + 2)

             WHEN 'BC'
                THEN (BC_SQ.NEXTVAL * 10) + 2

             WHEN 'CEB'             
                THEN (CEB_SQ.NEXTVAL * 10) + 2

             WHEN 'DDT'             
                THEN (DDT_SQ.NEXTVAL * 10) + 2

             WHEN 'ETA'             
                THEN (ETA_SQ.NEXTVAL * 10) + 2

             WHEN 'EMD'             
                THEN (EMD_SQ.NEXTVAL * 10) + 2

             WHEN 'HH'             
                THEN (HH_SQ.NEXTVAL * 10) + 2

             WHEN 'OR'
                THEN (OR_SQ.NEXTVAL * 10) + 2

             WHEN 'RT'
                THEN (RT_SQ.NEXTVAL * 10) + 2

             WHEN 'UM'
                THEN (UM_SQ.NEXTVAL * 10) + 2

             WHEN 'VT'
                THEN (VT_SQ.NEXTVAL * 10) + 2
        END
     )
   ;

我检查了这个,但这对我没有帮助

Oracle. Missing keyword when using case statement. Error 00905

0 个答案:

没有答案