Sql ORA-00928:缺少选择关键字:使用更新
我收到ORA-00928:使用“更新”和“使用”时缺少选择关键字错误 这是一个错误Sql ORA-00928:缺少选择关键字:使用更新,sql,oracle,Sql,Oracle,我收到ORA-00928:使用“更新”和“使用”时缺少选择关键字错误 这是一个错误 with wr_double as (select...) update work_request r set r.name = r.name || '_old' where exists (select 1 from wr_double wd where wd.name = r.name and wd.wr_id = r.id) 但这很好用 with wr_double as (select...)
with wr_double as
(select...)
update work_request r
set r.name = r.name || '_old'
where exists
(select 1 from wr_double wd
where wd.name = r.name and wd.wr_id = r.id)
但这很好用
with wr_double as
(select...)
select * from work_request r
where exists
(select 1 from wr_double wd
where wd.name = r.name and wd.wr_id = r.id)
此外,如果我将with中的子查询放在更新的主体中,它也可以正常工作
update work_request r
set r.name = r.name || '_old'
where exists
(select 1 from
(select
wr.name,
wr.id as wr_id,
dup_wr.count,
d.id as d_id,
d.create_date
from
(select...) wd
where wd.name = r.name and wd.wr_id = r.id)
我能不能以这种方式将“with”与“update”一起使用?您必须以下面的方式写入,因为CTE是选择而不是更新的一部分
update work_request
set name = name || '_old'
where exists (
with wr_double as
(select...)
select 1 from wr_double wd wd.name = work_request.name and wd.wr_id = work_request.id
);
@Hopper——文件上说fallingdog所做的是允许的;但这是因为它是MySQL文档,而不是Oracle RDBMS。在Oracle中,CTE只被允许(包括子查询中的CTE)。@Zaynul-就是这样!谢谢