Oracle删除跳过锁定
oracle是否允许删除具有某些条件的表中的行并跳过锁定的行Oracle删除跳过锁定,oracle,sql-delete,dml,Oracle,Sql Delete,Dml,oracle是否允许删除具有某些条件的表中的行并跳过锁定的行 DELETE from t WHERE t.id IN (SELECT id FROM t WHERE id in ('1','2') FOR UPDATE SKIP LOCKED ) 例如,id 2被其他会话锁定,删除脚本应跳过该行 上面的查询总是失败,出现错误 ORA-00907:缺少右括号 版本:Oracle1
DELETE from t
WHERE t.id IN (SELECT id
FROM t
WHERE id in ('1','2')
FOR UPDATE SKIP LOCKED )
例如,id 2被其他会话锁定,删除脚本应跳过该行
上面的查询总是失败,出现错误
ORA-00907:缺少右括号
版本:Oracle11gXeFOR UPDATE子句仅对顶级SQL语句有效,不对子查询有效
FOR UPDATE子句仅对顶级SQL语句有效,不对子查询有效
继Jeffrey的回答之后,我相信这条语句是用于PL/SQL块的。所以你可以试试这个,例如:
begin
for r in (select rowid as rid from t for update skip locked)
loop
delete from t where rowid = r.rid;
end loop;
end;
/
继Jeffrey的回答之后,我相信这个子句是用于PL/SQL块的。所以你可以试试这个,例如:
begin
for r in (select rowid as rid from t for update skip locked)
loop
delete from t where rowid = r.rid;
end loop;
end;
/
子查询看起来是多余的-如果您尝试从t中删除t.id('1','2')以进行更新跳过锁定,会发生什么情况?@JeffreyKemp它有语法问题,很抱歉延迟回复,在最近几天内无法访问计算机。kfinity的回答,下面。子查询看起来多余-如果您尝试从t中删除t.id('1','2')以进行更新跳过锁定,会发生什么情况?@JeffreyKemp它有一个语法问题,很抱歉延迟回复,最近几天没有访问计算机。下面是kfinity的答案。