Экранирование специальных символов в SQL - PullRequest
7 голосов
/ 07 января 2012

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

Примечание: ягенерирование динамических операторов выбора SQL через ORM.

Ответы [ 3 ]

16 голосов
/ 07 января 2012

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

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

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

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

2 голосов
/ 07 января 2012

Кажется, вы ищете что-то вроде команды 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

0 голосов
/ 11 апреля 2012

вот полная страница ответов по технологиям в сети. Даже приводит примеры и упражнения

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...