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