Как использовать оператор Like для переменной в триггере оракула - PullRequest
0 голосов
/ 13 мая 2018

Я хочу использовать LIke оператор для переменной, поэтому здесь :NEW.T2_NAME, я пытался как LIKE CONCAT('%',UPPER( :NEW.T2_NAME, '%');, но выдает ошибку, что здесь не так

create or replace 
trigger Testtrigger 
after INSERT OR UPDATE 
on Testtable 
FOR EACH ROW 
DECLARE 
EQ__POWER_TRG VARCHAR2(200);
BEGIN
 SELECT EQ__POWER
    INTO EQ__POWER_TRG
    FROM T1
    WHERE UPPER(T1.NAME) LIKE CONCAT('%',UPPER( :NEW.T2_NAME, '%');-- =UPPER( :NEW.T2_NAME);
 UPDATE T3
  SET EQ__POWER=EQ__POWER_TRG
 WHERE T_ID=ID;



  END IF;
    end;

Может кто-нибудь сказать мне, что здесь не так?

1 Ответ

0 голосов
/ 13 мая 2018

В Oracle функция CONCAT() принимает только два аргумента. Используйте проверенный, верный и стандартный оператор конкатенации:

WHERE UPPER(T1.NAME) LIKE ('%' || UPPER(:NEW.T2_NAME) || '%');

Кроме того, UPPER() принимает только один аргумент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...