took 6 hours to complete xquery!!! help me.
587246Aug 2 2007 — edited Mar 26 2012I got a xml schema which has more than 3 thousands of elements.
I created xml table and tried to insert elements of the schema into the table.
It took about 6 hours completed.
What a performance !
CREATE TABLE "FINESUSER"."TSCHEMA" OF SYS.XMLTYPE XMLTYPE STORE AS CLOB
INSERT INTO TSCHEMA SELECT HTTPURIType('http://www.xbrl.or.kr/kr/fr/common/pte/2006-05-31/krfr-pte-2006-05-31.xsd').getXML() FROM dual;
below XQuery took almost 6 hours (about 18,000 seconds)
Is there any idea to take not much time ?
SELECT id,concat(concat(prefix,':'),name) as name,tp,grp,abstract,nillable,period
FROM TSCHEMA t,
XMLTABLE(
XMLNAMESPACES(
'http://www.w3.org/1999/xlink' AS "xlink",
'http://www.xbrl.org/2003/linkbase' AS "link",
'http://www.xbrl.org/2003/instance' AS "xbrli",
'http://www.xbrl.org/2003/iso4217' AS "iso4217",
'http://www.xbrlkorea.com/kr/kisinfo/fr/gaap/ci/2007-02-09' AS "kisinfo-ci",
'http://www.xbrlkorea.com/kr/kisinfo/fr/gcd/2007-02-09' AS "kisinfo-gcd",
'http://www.xbrlkorea.com/kr/kisinfo/fr/profile/2007-02-09' AS "kisinfo-profile",
'http://www.xbrlkorea.com/kr/kisinfo/fr/ratio/2007-02-09' AS "kisinfo-ratio",
'http://www.xbrlkorea.com/kr/kisinfo/fr/common/scenario' AS "kisinfo-scenario",
'http://www.xbrl.or.kr/kr/fr/gaap/ci/2006-05-31' AS "kr-gaap-ci",
'http://www.xbrl.or.kr/kr/fr/common/pte/2006-05-31' AS "krfr-pte",
'http://www.xbrl.or.kr/kr/fr/common/ptr/2006-05-31' AS "krfr-ptr",
'http://www.xbrl.or.kr/2006/role/subitem-notes' AS "p0",
'http://xmlns.oracle.com/xdb' AS "ora",
DEFAULT 'http://www.w3.org/2001/XMLSchema'),
'
let $ns := $doc/schema/@targetNamespace
for $prefix in $doc/schema/@xmlns:*[.=$ns]/name()
where contains($prefix,":")
return
let $pn := substring-after($prefix,":")
for $e in $doc/schema/element
return <item prefix="{$pn}">{$e}</item>'
PASSING t.OBJECT_VALUE as "doc"
COLUMNS
id varchar2(128) PATH 'element/@id',
prefix varchar2(128) PATH '@prefix',
name varchar2(128) PATH 'element/@name',
tp varchar2(16) PATH 'element/@type',
grp varchar2(16) PATH 'element/@substitutionGroup',
abstract varchar2(16) PATH 'element/@abstract',
nillable varchar2(16) PATH 'element/@nillable',
period varchar2(16) PATH 'element/@xbrli:periodType'
) xt;