解决方案 »

  1.   

    你的update有问题,你update的对象为一个查询结果集,update的对象应该为具体的对象(表,视图等)
      

  2.   

    你的update有问题,你update的对象为一个查询结果集,update的对象应该为具体的对象(表,视图等)上面那个SQL是我乱写的,我现在提问是想知道正确的SQL怎么写。
      

  3.   


           update tb_log
              set userid = row.userid
            where userid = 0
              and rowid = (select rd
                             from (select rowid rd, rownum rn from tb_log)
                            where rn = i)
      

  4.   

    可以用一条merge语句来完成所有功能,例如
    MERGE /*+rowid(a)*/
    INTO tb_log a
    USING (SELECT x.*, y.rid
           FROM   (SELECT nickname, userid, username, ROWNUM r FROM tb_account WHERE nickname IS NOT NULL) x, 
                  (SELECT l.rowid rid, ROWNUM r FROM tb_log l WHERE userid = 0) y 
           WHERE  x.r = y.r) b
    ON (b.rid = a.rowid)
    WHEN MATCHED THEN
        UPDATE SET a.userid = b.userid