使用行号更新Oracle表列

Tom*_*Tom 5 sql oracle oracle10g sql-update

我想用行号更新表列.列中的每一行empid都应使用相关的行号进行更新.我试过以下查询.

UPDATE employee SET empid = row_number();
Run Code Online (Sandbox Code Playgroud)

但这不起作用.任何的想法?

Mur*_*nik 7

首先,这不是row_number()函数的正确语法,因为您缺少该over子句(导致ORA-30484错误).即使它是,这也行不通,因为你不能直接在set子句中使用窗口函数(导致ORA-30483错误).

但是,对于此用例,您可以使用rownum伪列:

UPDATE employee SET empid = ROWNUM;
Run Code Online (Sandbox Code Playgroud)

SQLFiddle