Страницы

Поиск по вопросам

воскресенье, 5 января 2020 г.

Как экранировать одиночные кавычки в строчном литерале?

#sql #oracle #plsql


В PL/SQL блоке, как экранировать одиночные кавычки в строчном литерале? 

Пробую так, но это не работает:

stmt varchar2 (4000) := 'insert into mytable (col) values (\'ER0002\')';

    


Ответы

Ответ 1



Используйте альтернативное квотирование с вводным символом Q или q: stmt := q'[insert into MY_TBL (Col) values('ER0002')]'; Ограничителем может быть любой символ отличный от пробельных, и он же должен завершать литерал перед последней одиночной кавычкой. Исключение скобки - {,(,[,<, где в конце ожидается соответствующая закрывающаяся скобка. Также, можно использовать две одиночные кавычки следующие друг за другом: stmt := 'insert into MY_TBL (Col) values(''ER0002'')'; Но синтаксис квотирования с Q более гибкий и читабельный. Источник: @DCookie

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

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