无法减去oracle表单中变量的值

无法减去oracle表单中变量的值,oracle,plsql,oracleforms,Oracle,Plsql,Oracleforms,我想减去变量中的数据值,但我的代码不起作用 我的代码在下面 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\u ID\u 1\u W\u CON是数字,不是吗?您的问题可能与

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

我的代码在下面

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\u ID\u 1\u W\u CON
是数字,不是吗?您的问题可能与空值有关,因此最好使用
nvl()
函数。顺便说一下,由于带有
into
子句的
select
语句可能会引发异常,因此我们需要处理它们。 因此,考虑使用下面的一个:

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


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

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


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

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

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


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

错误说明是什么?调试“not working”错误消息很困难。没有错误,也没有任何影响。为什么需要PL/SQL块来执行此操作?从REELS_表中选择权重-:R_ID_1_W_CON,其中R_ID=:R_ID_1_PLAIN;不?你希望从那个街区得到什么?它不输出任何内容,因此“没有任何效果”是可以预期的错误是什么?调试“不工作”错误消息很困难。没有错误,也没有任何效果。为什么需要PL/SQL块来调试?从REELS_表中选择权重-:R_ID_1_W_CON,其中R_ID=:R_ID_1_PLAIN;不?你希望从那个街区得到什么?它不输出任何东西,因此“没有任何效果”是可以预期的
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;