Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
A,C,(C'est moi)
Guest
В одной таблице обнаружил констрейнт, писанный кем-то задолго до меня: check (имя_поля <> 980)

С тех пор, как мой неизвестный предшественник породил этот текст, константа 980 перестала быть актуальна.

Как с минимальными трудозатратами узнать, существуют ли ещё (в других таблицах) констрейнты, содержащие эту же подстроку "980"?
15 мар 13, 17:28    [14054272]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
all_constraints.search_condition
15 мар 13, 17:29    [14054286]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Sacramento
Member [заблокирован]

Откуда: from Paris with love
Сообщений: 525
select * from dba_constraints dc
where dc.constraint_type = 'C'
and regexp_like(dc.search_condition, '980');
15 мар 13, 17:31    [14054307]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Sacramento
select * from dba_constraints dc
where dc.constraint_type = 'C'
and regexp_like(dc.search_condition, '980');

только от лонга надо предварительно избавиться
15 мар 13, 17:44    [14054414]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
A.C. (C'est moi)
Guest
orawish,
а как избавиться от long'а?
15 мар 13, 17:47    [14054435]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
A.C. (C'est moi),

преобразовать в varchar2
15 мар 13, 17:48    [14054444]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Sacramento
Member [заблокирован]

Откуда: from Paris with love
Сообщений: 525
[quot orawish]
Sacramento
только от лонга надо предварительно избавиться

Опля, вот так да неожиданность
Тогда пусть это будет домашним заданием доброму молодцу, а он потом нам расскажет как от него избавиццо, э?
15 мар 13, 17:50    [14054460]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
A.C. (C'est moi)
orawish,
а как избавиться от long'а?

create table t0 as 
select owner
      ,constraint_name
      ,to_lob(search_condition ) scon 
  from all_constraints
 where search_condition is not null;

select * from t0 where instr(scon,'08')>0;
15 мар 13, 17:52    [14054478]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
orawish,
кто-то сегодня очень бобр)) не оставил полёта мысли))
15 мар 13, 17:57    [14054518]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
A.C. (C'est moi)
Guest
orawish,

спасибо! реально помогло!

(обнаружил константу 980 ещё в 6 констрейнтах в разных таблицах)!
15 мар 13, 17:59    [14054542]     Ответить | Цитировать Сообщить модератору
 Re: Найти все Check-констрейнты, условие которых содержит данную подстроку  [new]
Sacramento
Member [заблокирован]

Откуда: from Paris with love
Сообщений: 525
orawish,
можно было хотя бы на 4 констрейнта написать скриптец
15 мар 13, 18:09    [14054612]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить