Oracle 更新两个表

Oracle update on two tables

我有两个表:

Item: Order_no, Item, Line_No
Fulfill: Order_no, Location, LINE NO

所有订单的两个表中的 LINE_NO 字段值相同。

我想将两个表中 LINE_NO 的值更新为从 1 开始并转到行项目数。

我该怎么做?

使用程序可能看起来像那样。它只是一个骨架,但一般来说,您只需要将更新放在 begin - exception - end 块中(就像您在 Java 中尝试 - catch - finally 一样):

create or replace procedure pr_procedure_name is
   --some declarations
   l_line_no  integer;
   l_order_no integer;
begin
   --some processing here
   begin

      update item i
         set i.line_no = l_line_no
       where i.order_no = l_order_no;

      update fulfill ff
         set ff.line_no = l_line_no
       where ff.order_no = l_order_no;

      --commit;
      --commit or not here - it depends on your processing

   exception
      when others then
         --log something?
         rollback;
   end;

   --some processing there

end pr_procedure_name;