как вставить специальные символы в базу данных оракула - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь запустить простую инструкцию вставки. Но в ней есть некоторые специальные символы, которые вызывают ошибку. Как избежать этого, чтобы он вставлялся в таблицу как есть.

update history set comments = 'my testing's' where id= '1323';

Ответы [ 4 ]

0 голосов
/ 20 февраля 2019

Просто для завершения картины, еще одна полезная опция - это функции CHR(ascii_code) и UNISTR(utf_code).

Например:

update history set comments = 'my testing' || chr(39) || 's' where id= '1323';

Чтобы добавить специальные символы, такие как евро:

update history set comments = 'His salary is ' || unistr('\20ac') || '786,000' where id= '1323';
0 голосов
/ 20 февраля 2019

В Oracle вы также можете использовать q-цитирование:

update history set comments = q'(my testing's' where id= '1323)';

Подробнее здесь и здесь .

0 голосов
/ 20 февраля 2019

update history set comments = 'my testing's' where id= '1323';

Это выдает ORA-00933, потому что апостроф ' является тем же символом, что и одинарная кавычка, которую мы используем для связывания строковых литералов.Таким образом, компилятор думал, что ваша строка завершилась после g, и ошибка, которую вы получили, заключалась в том, что он не понимал, что означает следующее s.

Чтобы решить эту проблему, мы можем избежать апострофа следующим образом:

update history set comments = 'my testing''s' where id= '1323';

Явное редактирование длинной строки может быть болью в шее, поэтому существует специальный синтаксис q'[...]' дляэкранировать все кавычки в строке:

update history set comments = q'[all testing's done by Baba O'Reilly]' 
where id= '1323';

Вот демонстрация SQL Fiddle .

, что в случае, если у меня есть символ, такой как @, добавит' работает?

В этом контексте @ не является специальным символом.Нет необходимости избегать его.

0 голосов
/ 20 февраля 2019

Два апострофа:

update history set comments = 'my testing''s' where id= '1323';
                                         ^^
                                         here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...