Проблема с оператором вставки с использованием коэффициента цитирования в Oracle - PullRequest
0 голосов
/ 28 июня 2018

Я поражен заявлением оракула. У меня есть таблица с именем «BATCH», в ней есть два столбца S_NO, DATA, у меня есть строковое значение, в котором есть все специальные символы. например, в столбце «ДАННЫЕ» у меня есть такое значение (это важные [партии], которые должны быть вставлены). Я в основном использую коэффициент цитирования для значений var char.

insert into BATCH(SNO,DATA)
VALUES(1,q'[This is the important [batch]'s which need to be inserted]') ;

Когда я запускаю этот оператор вставки, оракул выдает ошибку, называемую пропущенной запятой. Причина в строке (q '[это важный [пакет]' s] ') после слова, названного как пакет, рядом с тем словом, которое у меня есть (]'), что указывает оракулу, что это конец данные столбца. Как я могу обрабатывать такие данные, если я использую коэффициент цитирования.

Заранее спасибо.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете изменить разделитель цитат:

insert into BATCH(SNO,DATA)
VALUES(1,q'{This is the important [batch]'s which need to be inserted}');

Демоверсия DBFiddle

Если у меня есть такие данные (это важные [партии], которые необходимо вставить), то oracle выдает ошибку как недопустимая строка

Затем вам нужно изменить разделитель кавычек на символ, который с наименьшей вероятностью будет частью исходной строки, такой как ~|^ или любой другой, который подходит вам.

insert into BATCH(SNO,DATA)
VALUES(1,Nq'|This is the important [batch]'s which need to be inserted}|') ;
...