无法减去 oracle 形式的变量值

Unable to minus the values of variable in oracle form

我想减去变量中的数据值,但我的代码不起作用。

我的代码如下

DECLARE

  REEL_W NUMBER;

BEGIN

   SELECT WEIGHT 
   INTO REEL_W FROM REELS_TABLE
   WHERE R_ID = :R_ID_1_PLAIN;

   REEL_W := REEL_W - :R_ID_1_W_CON;

END;

这是我的 oracle 表格图片:

首先,我假设字段 :R_ID_1_W_CON 是数字,不是吗?您的问题可能与空值有关,所以最好使用 nvl() 函数。顺便说一句,由于带有 into 子句的 select 语句可能会引发异常,因此我们需要处理它们。 所以,考虑使用下面的一个:

DECLARE
  REEL_W NUMBER;
BEGIN
  SELECT nvl(WEIGHT,0)-nvl(:R_ID_1_W_CON,0)
    INTO REEL_W
    FROM REELS_TABLE
   WHERE R_ID = :R_ID_1_PLAIN;
 EXCEPTION WHEN NO_DATA_FOUND THEN REEL_W := 0;
END;

我在你的图片中看到你正在写一个 ON-INSERT 触发器。 在 ON-INSERT 中,您应该添加一个插入语句。

我想这就是它不起作用的原因。

您应该使用 PRE-INSERT 触发器或 WHEN-VALIDATE-ITEM 触发器来完成此类工作。