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;
我有两个表:
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;