clob列(mytable.personalization_data)からデータを返す次のOracleクエリがあります。 CLOB値が4,00文字未満の場合は正常に動作しますが、それ以上であれば、「ORA-01706:ユーザー関数の結果値が大きすぎます」というエラーメッセージが表示されます。ここで4,000文字以上のclobからXMLデータを取得する
はsqlです:
select name_str, value_str, order_str
from
(
SELECT
XMLTYPE(EXTRACTVALUE(XMLTYPE(personalization_data), '/personalizations/personalization[1]/data')) persData
FROM my_table
),
XMLTable('/Accessories/Personalization/PersonalizationItems'
PASSING persData
COLUMNS
name_str varchar2(100) PATH 'DisplayName',
value_str varchar2(2000) PATH 'Value',
order_str varchar2(10) PATH 'SortOrder'
);
サンプルXML:
<personalizations>
<personalization>
<data>
<![CDATA[
<Accessories>
<AccessoryId>1234567</AccessoryId>
<Personalization>
<PersonalizationItems>
<SortOrder>1</SortOrder>
<DisplayName>Last Name</DisplayName>
<Value>Veekoff</Value>
</PersonalizationItems>
<PersonalizationItems>
<SortOrder>2</SortOrder>
<DisplayName>First Name</DisplayName>
<Value>Ivana</Value>
</PersonalizationItems>
</Personalization>
</Accessories>
]]>
</data>
</personalization>
</personalizations>
誰かがアドバイスを提供していただけますか?
11gですか? 12c? – kfinity
Oracleバージョン= 12.1.0.2.0 –
あなたはhttps://stackoverflow.com/questions/16540132/oracle-view-more-than-4000-bytes-in-columnを見ましたか? – thatjeffsmith