update wcmchnldoc set docorder=row from (select *,row=row_number()over(order by docreltime) from wcmchnldoc)wcmchnldoc where docchannel=266
这个语句在sql里很正常啊。在ORACLE里就不行了,ORACLE不也有row_number()over吗

解决方案 »

  1.   

    两边的update语法不一样。
    根据你的写法改成oracle的,这只是修改,但是估计还会报错,返回多行的错误,你根据你自己的需求改改吧。UPDATE WCMCHNLDOC
       SET DOCORDER =
           (SELECT ROW_NUMBER() OVER(ORDER BY DOCRELTIME) FROM WCMCHNLDOC)
     WHERE DOCCHANNEL = 266
      

  2.   

    显然不行的!
    SELECT ROW_NUMBER() OVER(ORDER BY DOCRELTIME) FROM WCMCHNLDOC
    这句话返回的东西不好说啊!
      

  3.   

    两边的update语法不一样。
    根据你的写法改成oracle的,这只是修改,但是估计还会报错,返回多行的错误,你根据你自己的需求改改吧。