Экранирование специальных символов в SQL


Есть ли простой способ в Oracle избежать специальных символов в инструкции SQL? (т. е.%,&,') я видел эту ссылку в отношении ручного экранирования символов, но я подумал, что Oracle, возможно, предоставил более простой способ сделать это.

Примечание: Я создаю динамические инструкции SQL select через ORM.

3 7

3 ответа:

При использовании переменных bind и ORM встроенные одинарные кавычки и амперсанды должны передаваться автоматически; это специальные символы в SQL * Plus или SQL*Developer.

Чтобы использовать LIKE where для поиска буквенных символов % и _ (а не их многозначных и односимвольных подстановочных знаков), вы бы использовали предложение escape Условия like:

select * from my_table where some_text like '/%%' escape '/';

Вернет только строки, где some_text начинается со знака процента.

Похоже, вы ищете что-то вроде команды SET DEFINE OFF, которую можно запустить, и она влияет на весь сеанс SQL. Эта команда, однако, только мешает Oracle придать особое значение символу амперсанда. Он не влияет на другие специальные символы, такие как одинарная кавычка.

Пара ссылок на дополнительную информацию, касающуюся экранирования символов следуйте:

Https://forums.oracle.com/forums/thread.jspa?threadID=2256637

Http://docs.oracle.com/cd/B10501_01/text.920/a96518/cqspcl.htm

Вот страница окончательного ответа на tech on the net. Даже приводит примеры и упражнения

Http://www.techonthenet.com/sql/like.php