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 .
, что в случае, если у меня есть символ, такой как @, добавит' работает?
В этом контексте @
не является специальным символом.Нет необходимости избегать его.