【发布时间】:2019-10-08 19:14:26
【问题描述】:
我有两个 tables.account 在 server 和 account1 在 site ,它们具有相同的属性但不同的数据。
创建表帐户(
Accno int,
平衡int,
Acctype varchar2(20),
Accbranch varchar2(20),
主键(Accno));
创建表帐户1(
Accno int,
平衡int,
Acctype varchar2(20),
Accbranch varchar2(20),
主键(Accno));
现在我希望创建一个程序来进行银行提款交易。用户将输入一个帐号,该帐号可能来自 account 表或 account1 表以及提款金额。然后该过程将更新该特定表中的余额,该表具有用户提供的帐号作为输入。 我的代码对于一个表来说是可以的。但无法理解如何处理两个水平碎片表(帐户和帐户 1)。 任何人都可以建议我找到解决方案的更好方法。 这是我的程序
CREATE OR REPLACE PROCEDURE test(x IN number, y IN number)
AS
cur_balance number;
new_balance number;
BEGIN
select Balance into cur_balance
from Account
where Accno = x;
if (cur_balance < y)then
dbms_output.put_line('Insufficient balance');
else
new_balance:=cur_balance-y;
update Account
set Balance = new_balance
where Accno = x;
end if;
dbms_output.put_line('Money has been withdrawn successfully');
dbms_output.put_line('Current Balance:' || new_balance);
commit;
END;
/
【问题讨论】: