我有一个在oracle表单中看起来像这样的多行块:
我的查询:
Select * from table1;
看起来像这样:
+-----+
|value|
+-----+
| 3|
| 3|
| 7|
| 1|
+-----+
列值是要更新为 new 列的表格中的列:
因此,当我重新查询时,我的表上的值应该是这样的:
+-----+
|value|
+-----+
| 4|
| 6|
| 14|
| 2|
+-----+
我尝试过post form commit:
for i in 1 .. :rec_count
loop
update table1
set value = :new
where value = :value;
end loop;
但这只会更新我的最后一条记录。
答案 0 :(得分:1)
使用 while循环并使用 first_record 和 next_record 使用按钮 WHEN-BUTTON的内置插件可能是正确的-PRESSED 智能触发器,代码如下:
declare
v_blk varchar2(25) := 'block1';
begin
go_block(v_blk);
first_record;
while ( :value is not null )
loop
:value := :value + nvl(:added_value,0);
next_record;
end loop;
commit_form;
go_block(v_blk);
execute_query;
end;