понедельник, 12 января 2015 г.

Экранирование спецсимволов в строке VARCHAR

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

При экранировании конкретно одинарных кавычек еще можно использовать две одинарных кавычки подряд:
select 'Компания ''Клаус''' from dual

Результирующий текст в обоих случаях будет Компания 'Клаус'

Комментариев нет:

Отправить комментарий