Невозможно минус значения переменной в форме оракула - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу минус мои значения данных, которые находятся в переменных, но мой код не работает.

Мой код ниже

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;

вот мои формы оракулаизображение:

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Я вижу на вашей картинке, что вы пишете ON-INSERT триггер.В ON-INSERT вы должны добавить оператор вставки.

Я полагаю, именно поэтому он не работает.

Вы должны использовать триггер PRE-INSERT или WHEN-VALIDATE-ITEM дляделай такую ​​работу.

0 голосов
/ 19 декабря 2018

Во-первых, я предполагаю, что поле :R_ID_1_W_CON является числовым, не так ли?Ваша проблема может быть связана с нулевыми значениями, поэтому лучше использовать функцию nvl().Кстати, исключения могут возникать из-за операторов select с предложением into, поэтому нам нужно их обработать.Итак, рассмотрим использование ниже:

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;
...