Рассмотрим это определение таблицы:
CREATE TABLE foo (
a int not null, -- Implicit not null constraint
b int check (b is not null), -- Explicit not null constraint
c int check (c > 1) -- Explicit constraint
);
Я хочу обнаружить все явные проверочные ограничения, то есть ограничения, которые пользователь определил в своем выражении DDL, используя синтаксис CHECK
.Эти ограничения могут быть или не быть названы.В приведенном выше примере они не названы.Как я могу обнаружить только «явные» проверочные ограничения, игнорируя неявные?
Например, когда я запрашиваю ALL_CONSTRAINTS
:
SELECT *
FROM all_constraints
WHERE constraint_type = 'C'
AND table_name = 'FOO';
Я не вижу способа различитьявность / неявность:
CONSTRAINT_NAME SEARCH_CONDITION GENERATED
---------------------------------------------------
SYS_C00120656 "A" IS NOT NULL GENERATED NAME
SYS_C00120657 b is not null GENERATED NAME
SYS_C00120658 c > 1 GENERATED NAME