代码之家  ›  专栏  ›  技术社区  ›  jva

如何处理ORA-02014:无法使用DISTINCT、GROUP BY等从视图中选择更新

  •  3
  • jva  · 技术社区  · 14 年前

    我想在表中锁定一条记录。 记录被指定为“下一个ID大于…”

    CREATE TABLE test (id number);
    
    SELECT id
    FROM (SELECT id 
          FROM test
          WHERE id > 10
          ORDER BY id)
    WHERE ROWNUM = 1
    FOR UPDATE;
    

    这似乎是直观和简单的。但事实并非如此。有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  7
  •   DCookie    14 年前

    SELECT id
      FROM test
     WHERE id =
           (SELECT MIN(id) 
              FROM test
             WHERE id > 10)
    FOR UPDATE;