Oracle11g ORA-00936:缺少表达式(更新)

Oracle11g ORA-00936:缺少表达式(更新),oracle11g,Oracle11g,这种语法看起来不正确。尝试将您的查询更改为以下内容 UPDATE TBL_TRAIN_LIST SET SEAT=t.TOTAL (SELECT ANAM.NAME,ANAM.SEAT,ANAM2.TRAIN_NAME, ANAM2.SEAT, ANAM2.SEAT - ANAM.SEAT AS TOTAL FROM TBL_PASSENGER ANAM, TBL_TRAIN_LIST ANAM2 WHERE ANAM.NO=ANAM2.ID ) t where TBL_TRAIN

这种语法看起来不正确。尝试将您的查询更改为以下内容

UPDATE TBL_TRAIN_LIST SET SEAT=t.TOTAL 
(SELECT ANAM.NAME,ANAM.SEAT,ANAM2.TRAIN_NAME,
 ANAM2.SEAT,  ANAM2.SEAT - ANAM.SEAT  AS TOTAL 
 FROM TBL_PASSENGER ANAM, TBL_TRAIN_LIST ANAM2 
WHERE ANAM.NO=ANAM2.ID ) t
where TBL_TRAIN_LIST.ID=TBL_PASSENGER.NO;

你的问题是?如果非要我猜的话,我会说您正在查找
UPDATE
语句中的
SET
子句。是的,您是对的A-00933:SQL命令未正确执行endedORA-01438:value大于此列允许的指定精度Rahul bro现在错误为“ORA-01438:大于此列允许的指定精度的值”这不是答案中查询的问题,而是列定义的问题。我指的是列的大小。看起来这是浮点/双精度列,
UPDATE  
(SELECT ANAM.NAME,
ANAM.SEAT as NEWSEAT,
ANAM2.TRAIN_NAME,
ANAM2.SEAT,  
ANAM2.SEAT - ANAM.SEAT  AS TOTAL 
FROM TBL_PASSENGER ANAM
INNER JOIN TBL_TRAIN_LIST ANAM2 
ON ANAM.NO = ANAM2.ID ) t
SET t.NEWSEAT = t.TOTAL;