Как указывает Yahia, вы должны всегда использовать переменные связывания, а не динамически собирать операторы SQL. Это правильный способ защитить себя от атак SQL-инъекций. Экранирование строки обеспечивает гораздо более низкий уровень защиты.
При этом, предполагая, что вы используете Oracle 10.1 или новее, вы можете использовать синтаксис q цитирования. Что-то вроде
1 select q'[This is a string with an embedded ']' str
2* from dual
SQL> /
STR
-----------------------------------
This is a string with an embedded '
Вы можете заменить символы [и] на ряд других символов в зависимости от того, какие символы могут появиться в строке
1 select q'<This is a string with an embedded '>' str
2* from dual
SQL> /
STR
-----------------------------------
This is a string with an embedded '
SQL> ed
Wrote file afiedt.buf
1 select q'{This is a string with an embedded '}' str
2* from dual
SQL> /
STR
-----------------------------------
This is a string with an embedded '