plsql - Using ExtractValue and XMLType in MAterialized view -
i'm trying create materialized view present tabular view on xml data contained in table. hoping use auto refresh option ensure mv date.
some background: oracle 10.2
table def:
create table agreementextensiondata ( agreementextensiondataid number(18) not null, extensiondata nclob, agreementid number(18) not null)
example of extensiondata:
<extensions> <extensiondata id="2" name="includeportfolio" type="4">true</extensiondata> </extensions>
i have create log on table:
create materialized view log on agreementextensiondata nocache logging noparallel primary key including new values;
i trying create following mv:
create materialized view mv_extagreements refresh fast on commit enable query rewrite select agreementextensiondataid, agreementid, extractvalue(xmltype(extensiondata), '/extensions/extensiondata[@id=''1'']') agreementextensiondata /
but following message:
ora-30373: object data types not supported in context
i saw post suggesting use function extract values xml, not work either:
create or replace function extractvarchar2extension(p_xml in clob, in_number in varchar2) return varchar2 deterministic begin return xmltype(p_xml).extract('/extensions/extensiondata[@id=''' || in_number || ''']/text()').getstringval(); end; /
but following statement fails:
select extractvarchar2extension(extensiondata,'2') agreementextensiondata agreementid = 136
ora-00600: internal error code, arguments: [kghsccread1], [128], [0], [], [], [], [], [] ora-06512: @ "sys.xmltype", line 254 ora-06512: @ "algov5.extractvarchar2extension", line 5
??
any guidance welcome, maybe using wrong set of tools here.
thanks
change p_xml in clob
p_xml in nclob
.
Comments
Post a Comment