Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как построить регулярное выражение / 3 сообщений из 3, страница 1 из 1
22.06.2020, 21:35
    #39972045
www1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как построить регулярное выражение
Добрый день!
Кто знает как сделать такую логику в триггере:

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

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

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

Вводимые значения между "/" могут содержать любые символы.
...
Рейтинг: 0 / 0
23.06.2020, 00:46
    #39972118
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как построить регулярное выражение
www1

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


Да ну:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
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.
...
Рейтинг: 0 / 0
23.06.2020, 01:21
    #39972123
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как построить регулярное выражение
www1,

как вам уже сказали, на like вы наговариваете зря,
но если очень надо, например из религиозных мотивов,
то вполне достаточно пары substr
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как построить регулярное выражение / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]