При использовании запросов в духе
select 'Компания 'Клаус'' from dual
мы получим ошибку:
ORA-00923: ключевое слово FROM не найдено там, где оно ожидалось
Это вполне логично, текст представляется командному процессору в виде двух строк типа VARCHAR2: строки 'Компания ' и пустой строки ''. При этом слово Клаус командный процессор воспримет как команду, а не как текст, что и приведет к ошибке.
Для избежания подобных ошибок спецсимволы необходимо экранировать, чтобы командный процессор воспринимал их как текст.
для экранирования используем q.
select q'(Компания 'Клаус')' from dual
При экранировании конкретно одинарных кавычек еще можно использовать две одинарных кавычки подряд:
select 'Компания ''Клаус''' from dual
Результирующий текст в обоих случаях будет Компания 'Клаус'
select 'Компания 'Клаус'' from dual
мы получим ошибку:
ORA-00923: ключевое слово FROM не найдено там, где оно ожидалось
Это вполне логично, текст представляется командному процессору в виде двух строк типа VARCHAR2: строки 'Компания ' и пустой строки ''. При этом слово Клаус командный процессор воспримет как команду, а не как текст, что и приведет к ошибке.
Для избежания подобных ошибок спецсимволы необходимо экранировать, чтобы командный процессор воспринимал их как текст.
для экранирования используем q.
select q'(Компания 'Клаус')' from dual
При экранировании конкретно одинарных кавычек еще можно использовать две одинарных кавычки подряд:
select 'Компания ''Клаус''' from dual
Результирующий текст в обоих случаях будет Компания 'Клаус'
Комментариев нет:
Отправить комментарий