Как обрабатывать одинарные кавычки в Oracle SQL


79

Как вставить запись в столбец с типом данных varchar с одинарной кавычкой?

Пример : имя ROBERTи фамилияD'COSTA

Ответы:


151

Используйте две одинарные кавычки

SQL> SELECT 'D''COSTA' name FROM DUAL;

NAME
-------
D'COSTA

В качестве альтернативы используйте новый метод цитирования (10g +) :

SQL> SELECT q'$D'COSTA$' NAME FROM DUAL;

NAME
-------
D'COSTA

Что, если нам нужны две последовательные одинарные кавычки? На этот случай рассчитан «альтернативный» метод?
Ричард-Дедженн

@RichouHunter Вы бы использовать четыре одиночные кавычки: 'D''''COSTA' => D''COSTA. В качестве альтернативы:q'$D''COSTA$'
Винсент Мальграт

Спасибо, мне это помогло! Для справки, вот еще один документ Oracle, касающийся альтернативного синтаксиса цитирования для текстовых литералов, который читается немного лучше, чем связанный документ PL / SQL.
DanK

@Dank Я согласен, ссылка на SQL более ясна, чем документ PL / SQL по этому вопросу (я обновил ссылку на самую последнюю версию).
Винсент Мальграт,

1

Я обнаружил, что приведенный выше ответ дает ошибку с Oracle SQL, вы также должны использовать квадратные скобки ниже;

SQL> SELECT Q'[Paddy O'Reilly]' FROM DUAL;


Результат: Пэдди О'Рейли

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.