У меня есть ситуация, когда поле может быть NULL, когда другое поле является определенным значением, а для других оно должно быть NOT NULL.Использование where where в Check
"Type" VARCHAR2(30) NOT NULL,
BestandLocatie VARCHAR2(150) NULL,
Я сделал два ограничения, первый из которых позволяет ввести только определенные значения в «Тип».
CONSTRAINT TypeCheck
CHECK ("Type" IN ('Tab', 'Bass Tab', 'Chords', 'Power Tab', 'Guitar Pro',
'Video Lesson', 'Drum Tab', 'Ukulele Chords')),
Другое ограничение (что дает ошибку, отсутствует правая скобка) должен убедиться, что BestandLocatie является NOT NULL, когда «Тип» это определенные типы:
CONSTRAINT BestandLocatieCheck
CHECK (BestandLocatie IS NOT NULL WHERE ("Type" IN ('Power Tab', 'Guitar Pro'
'Video Lesson')))
Когда я искал, где положение Я только нашел примеры этого в некоторых операторах. Означает ли это, что я не могу использовать его здесь, есть ли другой способ сделать это, или я должен проверить это в конечном приложении или это можно сделать только в PLSQL?
Спасибо, я удалил оба ограничения и сделал новый: 'CONSTRAINT BestandEnTypeCheck ЧЕК (("Тип" IN (' Мощность Tab», 'Guitar Pro', 'Видео урок') И BestandLocatie IS NOT NULL) ИЛИ («Type» IN («Tab», «Басовая вкладка», «Аккорды», «Барабанная вкладка», «Укулелевые аккорды»))) «Теперь это должно работать так же хорошо, тоже вы ответ, если я посмотрю на него быстро. – Politiepet