首页 > 解决方案 > 使用 Join 更新 oracle 查询问题

问题描述

我不明白为什么它给出的 Sql 命令没有正确结束,

              Update Table1
                 Set LS.SECU_CHECKER_CODE  = '1000',
                     LS.SECU_CHECKER_DATE  = To_Char(SysDate, 'YYYYMMDDHH24MISS'),
                     LS.SECU_RECORD_STATUS = 98 
                From Table1 LS
                Join Table2 LS2
                  On LS2.SECC_SECURITY_ID = LS.SECU_SECURITY_ID
               Where LS2.SECC_LIMIT_ID    = '00010101010101';

标签: oracle

解决方案


从视图更新的语法在 Oracle 中与您使用的语法不同。但是,在您的情况下,您甚至不应该从视图进行更新,因为您没有使用其他表的内容,而只是检查是否存在您应该使用EXISTSor的记录IN

update table1
set secu_checker_code  = '1000'
  , secu_checker_date  = to_char(sysdate, 'yyyymmddhh24miss')
  , secu_record_status = 98 
where secu_security_id in
(
  select secc_security_id
  from table2
  where secc_limit_id = '00010101010101'
);

推荐阅读