在 Oracle Apex 中保存之前交互网格验证

问题描述 投票:0回答:1

我的数据库中有 2 个表:purchase_order 和purchase_order_details。

purchase_order
有一列
max_amount
代表可以按该顺序花费的总金额,并且
purchase_order_details
item_id
price
,在保存之前必须满足此条件
max_amount<sum(price)

我需要的是计算旧的总和,添加新插入的总和并验证它是否小于允许的最大金额。

所以我写了这个pl/sql验证函数

DECLARE
mx_amount number;
sum_prices number;
BEGIN
select max_amount into mx_amount from purchase_order where id=:P11_ID;
select sum(price) into sum_prices from purchase_order_details where order_id=:P11_ID;
IF mx_amount<=sum_prices then return true; 
else return false;
END IF;
END;

这段代码的问题是新插入的值不在数据库中,所以它总是返回 true 并且我不知道如何引用 IG 数据来执行类似的操作:

DECLARE
NEW_PRICES number;
BEGIN
select sum(:price) into NEW_PRICES from dual;

其中

:price
是每行的 IG 价格列。 那么我如何计算旧的总和,添加新插入的总和并验证它是否小于允许的最大金额。

plsql oracle-apex
1个回答
0
投票

GRID 的主键是什么? 是同一列,即 ID 或订单 id 吗?

© www.soinside.com 2019 - 2024. All rights reserved.