невозможно выполнить следующее утверждение выбора, получая ошибку - PullRequest
0 голосов
/ 24 января 2020

когда я выполняю следующую инструкцию выбора, я получаю следующую ошибку.

Я пытаюсь выполнить следующую инструкцию на Oracle сервере 9.1.

Я полагаю, что из-за этого я Я получаю эту ошибку.

Я знаю, что мы можем извинить запрос для одинарных кавычек на '% Blondeau D''Uva%'. Но я ищу запрос, который передаст значение специального символа в качестве параметра.

Kindluy, дайте мне знать, как экранировать одинарные кавычки в старом oracle сервере

ОШИБКА:

  ORA-00933: SQL Command not properly ended
Error at line : 1 Column : 50

Запрос:

Select * FROM TABLEA where UI_FNAME like q'[%Michael%]' and UI_LNAME  like q'[ %Blondeau D'Uva%]';

Ответы [ 3 ]

0 голосов
/ 24 января 2020

Две вещи о вашем запросе:

  1. Два раза использование where, где должен быть только один.
  2. О втором условии. Вы использовали q'[ %Blondeau D'Uva%]' в like предложении. Я думаю, что это не даст вам результат, который вы могли бы искать. Это не имеет ничего общего с вашей ошибкой, но, тем не менее, повторная проверка запроса не помешает.

Попробуйте, это не должно привести к возникновению ошибки:

Select * FROM TABLEA 
 where UI_FNAME like q'[%Michael%]' 
   and UI_LNAME like q'[%Blondeau D'Uva%]';

Ура!

0 голосов
/ 24 января 2020

Поскольку другие пытались дать вам ответ, но я думаю, что вам, вероятно, нужно оставить % вне скобок -

Select * 
FROM   TABLEA 
where  UI_FNAME like '%[Michael]%' 
and    UI_LNAME like '%[ Blondeau D''Uva]%';
0 голосов
/ 24 января 2020

Вкл. oracle следующее должно работать

Select * 
FROM   TABLEA 
where  UI_FNAME like '[%Michael%]' 
and    UI_LNAME like '[ %Blondeau D''Uva%]';

Так что нет дубликата, где. И вы должны процитировать 'между D и Uva И, вероятно, q перед' неверно ... так что я имею убрал это тоже.

Ок, попробовал с оператором q:

Select * 
FROM   employees 
where  first_name like q'[%Michael%]' 
and last_name  like q'[ %Blondeau D'Uva%]';

Нет ошибок, нет строки ...

...