Начиная с Oracle 10G, существует альтернатива удвоению одинарных кавычек:
insert into mytable (mycol) values (q'"select * from table where col = 'col'"');
Я использовал символ двойной кавычки ("), но вы можете указать другой, например ::
insert into mytable (mycol) values (q'@select * from table where col = 'col'@');
Синтаксис литерала:
q'<special character><your string><special character>'
Очевидно, что в таком маленьком примере он не так удобен для чтения, но он окупается большим количеством текста, например
insert into mytable (mycol) values (
q'"select empno, ename, 'Hello' message
from emp
where job = 'Manager'
and name like 'K%'"'
);