У меня есть формат данных XML, подобный этому.
<"id=1">
<"a">Test<"/a">
<"b">Test2<"/b">
<"c">Test3<"/c">
Как получить значение C в поле XMLData?
*value C is Test3
У меня есть формат данных XML, подобный этому.
<"id=1">
<"a">Test<"/a">
<"b">Test2<"/b">
<"c">Test3<"/c">
Как получить значение C в поле XMLData?
*value C is Test3
Как получить значение C в поле XMLData?
Как уже упоминал @Wernfried Domscheit, ваш xml
выглядит неправильно. См. ниже один из способов сделать это:
create table traptabclob(testclob clob);
/
insert into traptabclob
values
('<?xml version="1.0" encoding="UTF-8"?>
<DCResponse>
<id>
<Field key="a">Test</Field>
<Field key="b">Test2</Field>
<Field key="c">Test3</Field>
</id>
</DCResponse>');
/
Запрос:
SELECT
EXTRACTVALUE(xmltype(testclob), '/DCResponse/id/Field[@key="c"]') col1
FROM traptabclob;
Выход:
Col1
----
Test3
Изменить:
Спасибо за ваш ответ, мои данные не имеют тега
<?xml> version="1.0"....
, мои данные похожи на<row> id="1"><a>Test</a><b>Test2</b></row>
, они выглядят как типxml
, но я не знаю, это типxml
или нет. Спасибо
Пожалуйста, обратите внимание, что я только что привел пример действительного XML-файла, который обычно содержит <?xml> version="1.0"....
. Однако проблема с вашим XML-кодом заключается в размещении тегов в "
. Посмотрите ниже, как это работает:
create table traptabclob(testclob clob);
insert into traptabclob values('
<id>
<a>Test</a>
<b>Test2</b>
<c>Test3</c>
</id>');
Запрос:
SELECT EXTRACTVALUE(xmltype(testclob), '/id/c') col1
FROM traptabclob ;
Выход:
Col1
----
Test3