clob 열 (mytable.personalization_data)에서 데이터를 반환하는 다음 Oracle 쿼리가 있습니다. CLOB 값이 4,00 자보다 작 으면 잘 작동하지만 더 많으면 "ORA-01706 : 사용자 함수 결과 값이 너무 큼"오류 메시지가 나타납니다.4,000자를 초과하는 clob에서 XML 데이터 검색
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>
누군가가 제안을 주 시겠어요 여기서
는 SQL입니까?
11g이십니까? 12c? – kfinity
오라클 버전 = 12.1.0.2.0 –
당신은 https://stackoverflow.com/questions/16540132/oracle-view-more-than-4000-bytes-in-column을 보았습니까? – thatjeffsmith