Я попробовал все вышеперечисленные ответы и нашел, что все они не работают, возможно, я использовал Windows 8 и установил Visual Studio 2012. В этом случае вы это делаете.
Файл vcvarsall.bat
находится здесь: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC
Просто выберите файл и скопируйте его.
Затем перейдите в этот каталог: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools
и вставить файл. И тогда все должно быть хорошо.
Вы можете использовать буквенное цитирование:
stmt := q'[insert into MY_TBL (Col) values('ER0002')]';
Документацию для литералов можно найти здесь .
В качестве альтернативы вы можете использовать две кавычки для обозначения одной цитаты:
stmt := 'insert into MY_TBL (Col) values(''ER0002'')';
Механизм цитирования букв с синтаксисом Q более гибкий и читаемый, IMO.
Просто поставьте следующую инструкцию перед FOR:
set escape '\';
Вот сообщение в блоге , которое должно помочь с экранированием тиков в строках.
Вот простейший из указанных сообщений:
простым и наиболее распространенным способом является использование одной кавычки с двумя одиночными кавычками в обеих сторонах.
SELECT 'тестовая одиночная кавычка' '' из dual;
Выходной сигнал вышеприведенный оператор будет выглядеть следующим образом:
test single quote '
Просто заявив, что вам нужен дополнительный символ одиночной кавычки для печати одного символа quote>. То есть, если вы поместите два символа одной кавычки, Oracle будет печатать один. Первый> действует как escape-символ.
Это самый простой способ печати одиночных кавычек в Oracle. Но это будет сложно, если вам придется печатать набор кавычек вместо одного. В этой ситуации следующий метод работает отлично. Но для этого требуется еще более типичный труд.
blockquote>
В дополнение к ответу DCookie выше, вы также можете использовать chr (39) для отдельной цитаты.
Я считаю это особенно полезным, когда мне нужно создать несколько операторов вставки / обновления на основе большой объем существующих данных.
Вот очень простой пример:
Select 'UPDATE Customers SET LName = ' || chr(39) || 'Doe' || chr(39) || ';' From dual;