ORA-00933: команда SQL неправильно завершена 00933. 00000 - команда SQL неправильно завершена - PullRequest
0 голосов
/ 10 ноября 2019
Select S.sname
From    suppliers s
where not exists (
(select * from parts p where p.color = 'red')  ; all red parts
except
(select c.pid from catalog c, parts p where c.sid = s.sid
and c.pid = p.pid and p.color = 'red'))


select  p.pname
from    parts p. catalog c, suppliers s
where   p.pid = c.pid and c.sid = s.sid
AND s.sname = 'S1'

AND not exists (  # another supplier
select * from catalog c1, suppliers s1
where p.pid = c1.pid and c1.sid = s1.sid
AND s1.sname <> 'S1')

Когда я выполняю два вышеупомянутых запроса, он показывает, что команда SQL не завершена должным образом

1 Ответ

1 голос
/ 10 ноября 2019

Возможно, потому что они недействительны;что эти

  • ; all red parts except и
  • # another supplier

должны делать? Комментарии, возможно? В Oracle вы бы использовали -- или вложили комментарии в /* ... */.

Это, возможно, несколько лучше:

Первый запрос:

Select S.sname 
From suppliers s 
where not exists ( (select * 
                    from parts p 
                    where p.color = 'red'
                   ) 
                    minus 
                   (select c.pid 
                    from catalog c, parts p 
                    where c.sid = s.sid 
                      and c.pid = p.pid 
                      and p.color = 'red'
                   )
                 );

Второй запрос:

select p.pname 
from parts p, catalog c, suppliers s 
where p.pid = c.pid 
  and c.sid = s.sid 
  AND s.sname = 'S1'
  AND not exists (select * 
                   from catalog c1, suppliers s1 
                   where p.pid = c1.pid 
                     and c1.sid = s1.sid 
                     AND s1.sname <> 'S1'
                 );                 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...