两个表上的Oracle更新

时间:2015-10-27 10:26:29

标签: sql oracle sql-update

我有两张桌子:

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

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

我想更新LINE_NO的值,从1开始,然后转到两个表中的行项目数。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

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

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;