Як обробляти єдину лапку в Oracle SQL


79

Як вставити запис у стовпець із типом даних varchar, що містить одинарну лапку?

Приклад : ім’я ROBERTта прізвищеD'COSTA

Відповіді:


151

Використовуйте дві одинарні лапки

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

NAME
-------
D'COSTA

Крім того, скористайтеся новим методом цитування (10 г +) :

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

NAME
-------
D'COSTA

Що робити, якщо нам потрібні дві послідовні одинарні лапки? Чи призначений у цьому випадку "альтернативний" метод?
Richard-Degenne

@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.