У меня есть столбцы response_xml и request_xml, которые состоят из большой строки. Я использовал функцию подстроки для этой большой строки, чтобы получить SUBSCRIPTION_ID из response_xml и orderType из request_xml. Запрос работает нормально. Но теперь я хочу поставить условие для этого запроса, чтобы он возвращал только SUBSCRIPTION_ID, где orderType = 'NEW'. Я использовал приведенный ниже запрос, но в результате возникла ошибка ORA-00932: inconsistent datatypes: expected - got CLOB 00932. 00000 - "inconsistent datatypes: expected %s got %s"
. Я думаю, мне нужно преобразовать столбец REQUEST_XML из clob в VARCHAR или XMLTYPE, а затем применить к нему подстроку. Но не знаю, как это сделать. Ошибка появляется там, где условие iw.order_type='NEW' . Вот мой запрос:
select iw.order_type
from (
SELECT REPLACE(REPLACE(REGEXP_SUBSTR(RESPONSE_XML, '<ax2147:subscriptions xsi:type="ax2127:SubscriptionDTO"><ax2130:id>\d+</ax2130:id>'),
'<ax2147:subscriptions xsi:type="ax2127:SubscriptionDTO"><ax2130:id>', ''), '</ax2130:id>', '')
AS SUBSCRIPTION_ID ,
REPLACE(REPLACE(REGEXP_SUBSTR(REQUEST_XML, '<ns7:orderType>\d+</ns7:orderType>'), '<ns7:orderType>', ''), '</ns7:orderType>', '')
AS order_type,
CREATE_DATE
FROM
SOAP_MONITORING
where WEB_SERVICE_NAME='RatorWebShopService' and WEB_METHOD_NAME='placeShopOrder'
) iw
where iw.order_type='NEW'
order by iw.CREATE_DATE desc