データベースのバージョン: Oracle 11gr2、私のテーブルは次のようなものです:
create table t_test(t_id number,t_value number)
insert into t_test (t_id) values (1);
insert into t_test (t_id) values (2);
insert into t_test (t_id) values (6);
insert into t_test (t_id) values (10);
insert into t_test (t_id) values (3);
t_id t_value
1 null
2 null
6 null
10 null
3 null
私の予想される更新は次のようなものです:
select t.t_id,row_number() over (order by t.t_id)
from t_test t
t_id row_number() over (order by t.t_id)
1 1
2 2
6 4
10 5
3 3
ただし、更新ビューでは分析関数は使用できません。
update
(select t.value,row_number() over (order by t.t_id) rn
from t_test t)
set value=rn
間違いなく、ORA-01732 が発生します。更新クエリを入力するにはどうすればよいですか?