Oracle SQL - можно ли использовать CASE в проверочном ограничении для определения атрибутов данных?
Я использую Oracle 10g и хочу применить ограничение к таблице, в которой значение, введенное для одного столбца, определяет, является ли другой столбец NULL или NOT NULL. Столбец1 может содержать только 1 или 0; Столбец2 - это VARCHAR2 (255).
Я знаю, что работает следующее:
CONSTRAINT ck_1 CHECK ((col1=1 AND col2 IS NOT NULL) OR (col1=0 AND col2 IS NULL));
Однако мне было интересно, можно ли использовать CASE для выполнения этого ограничения и установить атрибут NOT NULL на col2, или CASE можно использовать только для определения значений? то есть может что-то вроде этой работы:
CONSTRAINT ck_1 CHECK (CASE WHEN col1=1 THEN col2 IS NOT NULL ELSE col2 IS NULL END);