Я хочу написать триггер для ограничения вставки числовых значений - PullRequest
0 голосов
/ 25 января 2019

Я хочу написать триггер для ограничения пользователя на вставку числовых значений и специальных символов в поле Имя столбца.

CREATE TRIGGER trig_check BEFORE
     INSERT ON tempuser
     FOR EACH ROW
BEGIN
     IF :new.firstname NOT LIKE '%[0-9]%' 
     THEN
          dbms_output.put_line('INSERT ONLY ALPHABETS');
     END IF;
END;
/

1 Ответ

0 голосов
/ 25 января 2019

Как указывало @a_horse_with_no_name, лучше добавить проверочное ограничение, как показано ниже:

alter table TAB
  add constraint CHK_NAME_WITHOUT_NUMBER
  check (not regexp_like(name,'[0-9]+'));

, конечно, после очистки данных, которые содержат числа.Для достижения этой цели перед DDL может использоваться следующий оператор DML:

update tab
   set name = regexp_replace(name,'[0-9]+','');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...