Мне нужно обновить значения XML, хранящиеся в столбце BLOB в Oracle 11G. BLOB хранит XML-файл кометы, в котором мне нужно обновить некоторые значения и сохранить его как BLOB. Как я могу легко SELECT и UPDATE преобразование blit данных wit и XMLQUERY AND XMLUPDATE? Любые примеры кода?Выбрать и обновить столбец Oracle BLOB с помощью XMLQUERY
Заранее спасибо.
Вот еще некоторые детали:
Здесь вы DDL таблицы:
CREATE TABLE MAPSHEET
(
MAPSHEETID NUMBER (14,0) NOT NULL,
NAME VARCHAR2 (64) NOT NULL,
STRUCTURE BLOB,
)
данные XML в блоб Col СТРУКТУРЫ
<MapSheet Version="1.0">
<Frame>
<JobId>9022165</JobId>
<LayoutId>24807064</LayoutId>
<Blocks>
<Block MapFieldMask="true" CompressText="false" CombineRaster="false">
<Name>layout</Name>
<StyleId>24808857</StyleId>
<LayoutLayers>0 1</LayoutLayers>
<BlockScale/>
<JobItemIds/>
</Block>
<Block MapFieldMask="true" CompressText="false" CombineRaster="false">
<Name>karto</Name>
<StyleId>24809031</StyleId>
<LayoutLayers>4</LayoutLayers>
<BlockScale/>
<JobItemIds>
<JobItemId>9083675</JobItemId>
<JobItemId>9088148</JobItemId>
</JobItemIds>
</Block>
<Block MapFieldMask="true" CompressText="false" CombineRaster="false">
<Name>hel</Name>
<StyleId>24809032</StyleId>
<LayoutLayers>-</LayoutLayers>
<BlockScale/>
<JobItemIds>
<JobItemId>9022173</JobItemId>
<JobItemId>25403646</JobItemId>
</JobItemIds>
</Block><Block MapFieldMask="true" CompressText="false" CombineRaster="false">
<Name>shade glacier</Name>
<StyleId>24809041</StyleId>
<LayoutLayers>-</LayoutLayers>
<BlockScale/>
<JobItemIds>
<JobItemId>24806040</JobItemId>
</JobItemIds>
</Block>
<Block MapFieldMask="true" CompressText="false" CombineRaster="false">
<Name>shade</Name>
<StyleId>24809040</StyleId>
<LayoutLayers>-</LayoutLayers>
<BlockScale/>
<JobItemIds>
<JobItemId>24806038</JobItemId>
</JobItemIds>
</Block>
</Blocks>
<Offset X="0" Y="0"/>
<Name>DS</Name>
</Frame></MapSheet>
Этот простой SELECT, чтобы получить данные не работают:
SELECT x.MapSheet
FROM XmlTable('/MapSheet') PASSING XmlType(MAPSHEET.STRUCTURE,1)
COLUMS "XML" VARCHAR2(300) PATH 'MapSheet') AS x;
Как я могу выбрать/обновить требуемые данные xml из colob blob?
Привет, я не могу использовать EXTRACTVALUE команды больше, потому что это не рекомендуется. Поэтому я должен попробовать его с помощью XmlTable в вашем примере. Но отсутствует преобразование blob для clob и то же самое для оператора update, простой метод обхода вокруг метода XMLType (blob_value) не работает. Можете ли вы добавить полный синтаксис для него. Было бы замечательно! – happymapper
@happymapper - Извините, забыл включить параметр для указания набора символов (1 = USASCII) в функции 'XmlType'. – gmiley
Ваш пример выбора все еще не работает, потому что синтаксис XMLType по-прежнему использует данные XML. Блаб используется в нашей таблице, потому что это настройка по умолчанию для нашей системы, и я не должен ее менять. – happymapper