【问题标题】:Oracle Forms Update Table using Multi-record使用多记录的 Oracle Forms 更新表
【发布时间】:2018-05-29 21:39:06
【问题描述】:

我有一个在 oracle 表单中看起来像这样的多行块:

我的查询:

Select * from table1;

看起来像这样:

+-----+
|value|
+-----+
|    3|
|    3|
|    7|
|    1|
+-----+

value 列是表中要更新为列new 的列:

这样当我重新查询时,我表上的值应该是这样的:

+-----+
|value|
+-----+
|    4|
|    6|
|   14|
|    2|
+-----+

我尝试过提交表单提交:

for i in 1 .. :rec_count
loop
    update table1
    set value = :new
    where value = :value;
end loop;

但这只会更新我拥有的最后一条记录。

【问题讨论】:

    标签: oracle for-loop oracle11g oracleforms oracle-cursor


    【解决方案1】:

    使用 while 循环first_recordnext_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;
    

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多