Я, конечно, мог бы сделать эвристику о маловероятности того, что кто-то использует точный синтаксис "COLUMN_NAME" IS NOT NULL
(включая двойные кавычки):
SELECT *
FROM all_constraints
WHERE constraint_type = 'C'
AND table_name = 'FOO'
AND search_condition_vc NOT IN (
SELECT '"' || column_name || '" IS NOT NULL'
FROM all_tab_cols
WHERE table_name = 'FOO'
AND nullable = 'N'
);
Это дает мне желаемый результат:
CONSTRAINT_NAME SEARCH_CONDITION GENERATED
---------------------------------------------------
SYS_C00120657 b is not null GENERATED NAME
SYS_C00120658 c > 1 GENERATED NAME
Я представляю это как ответ, так как это может быть достаточно для некоторых людей, но мне бы очень хотелось более надежное решение.