Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как построить регулярное выражение  [new]
www1
Member

Откуда:
Сообщений: 1
Добрый день!
Кто знает как сделать такую логику в триггере:

IF :new.a='AAA' AND :new.b NOT LIKE '/%/' THEN RAISE_APPLICATION_ERROR(-20002,'Должно начинаться и заканчиваться символом /'; END IF;

Через LIKE не работает.

Как сделать регулярку?

Вводимые значения между "/" могут содержать любые символы.
22 июн 20, 21:35    [22155479]     Ответить | Цитировать Сообщить модератору
 Re: Как построить регулярное выражение  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9901
www1

Через LIKE не работает.


Да ну:

SQL> create table tbl(a varchar2(10),b varchar2(10))
  2  /

Table created.

SQL> create or replace
  2    trigger tbl_biur
  3      before insert
  4      or update
  5      on tbl
  6      for each row
  7      begin
  8          IF :new.a='AAA' AND :new.b NOT LIKE '/%/'
  9            THEN
 10              RAISE_APPLICATION_ERROR(-20002,'Must begin and end with /');
 11          END IF;
 12  end;
 13  /

Trigger created.

SQL> insert
  2    into tbl
  3    values(
  4           'AAA',
  5           '/BBB/'
  6          )
  7  /

1 row created.

SQL> insert
  2    into tbl
  3    values(
  4           'AAA',
  5           'CCC'
  6          )
  7  /
  into tbl
       *
ERROR at line 2:
ORA-20002: Must begin and end with /
ORA-06512: at "SCOTT.TBL_BIUR", line 4
ORA-04088: error during execution of trigger 'SCOTT.TBL_BIUR'


SQL> update tbl
  2     set b = 'CCC'
  3  /
update tbl
       *
ERROR at line 1:
ORA-20002: Must begin and end with /
ORA-06512: at "SCOTT.TBL_BIUR", line 4
ORA-04088: error during execution of trigger 'SCOTT.TBL_BIUR'


SQL>


SY.
23 июн 20, 00:46    [22155599]     Ответить | Цитировать Сообщить модератору
 Re: Как построить регулярное выражение  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15474
www1,

как вам уже сказали, на like вы наговариваете зря,
но если очень надо, например из религиозных мотивов,
то вполне достаточно пары substr
23 июн 20, 01:21    [22155609]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить