вставить XML запрос в столбец clob, используя Oracle - PullRequest
4 голосов
/ 18 апреля 2020

У меня есть запрос XML, как показано ниже:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:toy="ToyotaWebServiceHost" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <toy:CreateOrder soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <orderToCreate xsi:type="enc:WebServiceOrder" xmlns:enc="ToyotaWebServiceHost/encoded">
            <OrderRows xsi:type="enc:ArrayOfWebServiceOrderRow" soapenc:arrayType="enc:WebServiceOrderRow[]"/>
            <OrderId xsi:type="xsd:string">?</OrderId>
         </orderToCreate>
      </toy:CreateOrder>
   </soapenv:Body>
</soapenv:Envelope>

Я хотел вставить его в таблицу в столбце clob, но из-за двойных кавычек ("") он не может быть вставлен, и ошибка ниже наблюдаемый . SQL Ошибка : ORA-01756: строка в кавычках неправильно завершена, она не может быть вставлена. Пожалуйста, предложите

1 Ответ

4 голосов
/ 18 апреля 2020

Oracle использует одинарные кавычки для разделения строк.

Используйте одинарные кавычки, не нужно экранировать двойные кавычки - см. Пример ниже

create table tab (my_clob clob);

insert into tab (my_clob)
values (
'<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:toy="ToyotaWebServiceHost" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <toy:CreateOrder soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <orderToCreate xsi:type="enc:WebServiceOrder" xmlns:enc="ToyotaWebServiceHost/encoded">
            <OrderRows xsi:type="enc:ArrayOfWebServiceOrderRow" soapenc:arrayType="enc:WebServiceOrderRow[]"/>
            <OrderId xsi:type="xsd:string">?</OrderId>
         </orderToCreate>
      </toy:CreateOrder>
   </soapenv:Body>
</soapenv:Envelope>' 
);

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