Как обрабатывать одинарные кавычки в 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;


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

Mur3ph
источник