Как перевести проверочное ограничение с SQL Server на Oracle - PullRequest
1 голос
/ 24 апреля 2019

Я должен был бы перевести следующее ограничение сервера SQL:

ALTER TABLE [dbo].[tblLocal_FDIMP_SRCDESCFTP]  WITH CHECK ADD  CONSTRAINT [fmtfile_chk] CHECK  (
   (  (1) = case 
            when [file_type]='LBC' AND [fmtfile]='ZIP' then (1) 
            when ([file_type]='AE' OR [file_type]='TS') AND ([fmtfile] IS NULL OR upper([fmtfile])='ZIP') then (1) 
            else (0) end
))GO

Что будет эквивалентным ограничением для перевода в синтаксис Oracle?

Спасибо

1 Ответ

4 голосов
/ 24 апреля 2019

Почему люди используют 1 = CASE для условий?

ALTER TABLE tblLocal_FDIMP_SRCDESCFTP 
ADD  CONSTRAINT fmtfile_chk CHECK  ((file_type='LBC' AND fmtfile='ZIP') 
                                OR ((file_type='AE' OR file_type='TS') AND (fmtfile IS NULL OR UPPER(fmtfile)='ZIP')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...