Constraints on a XMLTYPE table

Hi,
Has anyone been able to construct constraints on a XMLTYPE table as shown on page 5-52 of the XDB Developers
guide.
Whatever I try I get errors:
create table poc_wip2 of xmltype
element "http://www.derwent.co.uk/wpi.xsd#WPI"
(unique(XMLDATA.WPI_TYPE.BibPt2645_T.co))
(unique(XMLDATA.WPI_TYPE.BibPt2645_T.co))
ERROR at line 3:
ORA-00922: missing or invalid option
create table poc_wip2 p of xmltype
element "http://www.derwent.co.uk/wpi.xsd#WPI"
(unique(extract(value(p),/WPI/BibPt@co')))
create table poc_wip2 p of xmltype
ERROR at line 1:
ORA-00922: missing or invalid option
What I would like to be able to do is to define a primary key constraint based on three attribute values. Is this possible
using XMLTYPE?
Thanks
Pete

Peter
Remember that the attribute names generated from the Schema are case sensitive bu SQL is not. You will have to use something like XMLDATA.WPI_TYPE."BibPt2645_T"."co" in the constraint definition
It may be easier to create the table via registerSchema and then alter the constraint onto the table..
EG.
alter table purchaseorder
add constraint REFERENCE_IS_UNIQUE
unique (xmldata."Reference")
alter table purchaseorder
add constraint USER_IS_VALID
foreign key (xmldata."User") references SCOTT.emp(ename)
create trigger VALIDATE_PURCHASEORDER
before insert on purchaseorder
for each row
declare
XMLDATA xmltype;
begin
XMLDATA := :new.sys_nc_rowinfo$;
xmltype.schemavalidate(XMLDATA);
end;
--quit
The reason for this is that if you want to keep a table created from a schema in_sync with the resource view you need to call
dbms_xdbz.enableHierarchy(SCHEMA,TABLE) after creating the table..

Similar Messages

  • Referential constraints on XMLType tables

    Hi all,
    I'm trying to create an XMLType table with a foreign key that references another XMLType table. Shouldn't be a big deal, i thought.
    CREATE TABLE datasets (
    ID NUMBER,
    XML XMLTYPE )
    XMLTYPE COLUMN XML XMLSCHEMA "dataset_schema.xsd" ELEMENT "root";
    CREATE TABLE categories OF XMLTYPE XMLSCHEMA "categories.xsd" ELEMENT "categories";
    ALTER TABLE datasets
    2 ADD CONSTRAINT dataset_isvalid
    3 FOREIGN KEY(XML.XMLDATA."dataset"."metaInformation"."referenceFunction"."category")
    4 REFERENCES categories(XMLDATA."category"."name");
    FOREIGN KEY(XML.XMLDATA."dataset"."metaInformation"."referenceFunction"."category")
    ERROR at line 3:
    ORA-22809: nonexistent attribute
    I've then been reading through the postings regarding foreign key and unique constraints and i've managed to understand the concept of nested tables. To my dismay, trying to establish referential constraints my nested tables would throw an ORA-30730 stating this cannot be done.
    I've simplified my schemas a little so it won't get to complicated: one table will store datasets and the other will hold category names.
    The schema for the categories is
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- schema for categories -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
         <xs:element name="categories">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="category" type="categoryType" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:complexType name="categoryType">
              <xs:sequence>
                   <xs:element name="subCategory" type="subCategoryType" maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="name" type="xs:string" use="required"/>
              <xs:attribute name="localName" type="xs:string" use="required"/>
              <xs:attribute name="type" type="xs:byte" use="required"/>
         </xs:complexType>
         <xs:complexType name="subCategoryType">
              <xs:attribute name="name" type="xs:string" use="required"/>
              <xs:attribute name="localName" type="xs:string" use="required"/>
         </xs:complexType>
    </xs:schema>
    and the schema for the dataset table is
    <?xml version="1.0" encoding="UTF-8"?>
    <!- dataset schema-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
         <xs:complexType name="datasetType">
              <xs:sequence>
                   <xs:element name="metaInformation" type="metaInformationType"/>
                   <xs:element ref="otherInformation"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="metaInformationType">
              <xs:sequence>
                   <xs:element name="referenceFunction" type="referenceFunctionType"/>
              </xs:sequence>
         </xs:complexType>
         <xs:element name="otherInformation" type="xs:string"/>
         <xs:complexType name="referenceFunctionType">
              <xs:attribute name="name" type="xs:string" use="required"/>
              <xs:attribute name="category" type="xs:string" use="required"/>
              <xs:attribute name="subCategory" type="xs:string" use="required"/>
         </xs:complexType>
         <xs:element name="root">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="dataset" type="datasetType" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
    </xs:schema>
    Now I want to define the referenceFunction/@category attribute of the dataset to be a foreign key to the categories table. Is it possible at all to do that with constraints? After failing with the nested table approach I really do not have any clue I would greatly appreciate any hints.
    Thanks,
    oli

    Nested tables do not currently support referential integrity.
    Foreign Keys on elements with maxOccurs > 0

  • Insert XML file into Relational database model without using XMLTYPE tables

    Dear all,
    How can I store a known complex XML file into an existing relational database WITHOUT using xmltypes in the database ?
    I read the article on DBMS_XMLSTORE. DBMS_XMLSTORE indeed partially bridges the gap between XML and RDBMS to a certain extent, namely for simply structured XML (canonical structure) and simple tables.
    However, when the XML structure will become arbitrary and rapidly evolving, surely there must be a way to map XML to a relational model more flexibly.
    We work in a java/Oracle10 environment that receives very large XML documents from an independent data management source. These files comply with an XML schema. That is all we know. Still, all these data must be inserted/updated daily in an existing relational model. Quite an assignment isn't it ?
    The database does and will not contain XMLTYPES, only plain RDBMS tables.
    Are you aware of a framework/product or tool to do what DBMS_XMLSTORE does but with any format of XML file ? If not, I am doomed.
    Constraints : Input via XML files defined by third party
    Storage : relational database model with hundreds of tables and thousands of existing queries that can not be touched. The model must not be altered.
    Target : get this XML into the database on a daily basis via an automated process.
    Cheers.
    Luc.

    Luc,
    your Doomed !
    If you would try something like DBMS_XMLSTORE, you probably would be into serious performance problems in your case, very fast, and it would be very difficult to manage.
    If you would use a little bit of XMLType stuff, you would be able to shred the data into the relational model very fast and controlable. Take it from me, I am one of those old geezers like Mr. Tom Kyte way beyond 40 years (still joking). No seriously. I started out as a classical PL/SQL, Forms Guy that switched after two years to become a "DBA 1.0" and Mr Codd and Mr Date were for years my biggest hero's. I have the utmost respect for Mr. Tom Kyte for all his efforts for bringing the concepts manual into the development world. Just to name some off the names that influenced me. But you will have to work with UNSTRUCTURED data (as Mr Date would call it). 80% of the data out there exists off it. Stuff like XMLTABLE and XML VIEWs bridge the gap between that unstructured world and the relational world. It is very doable to drag and drop an XML file into the XMLDB database into a XMLtype table and or for instance via FTP. From that point on it is in the database. From there you could move into relational tables via XMLTABLE methods or XML Views.
    You could see the described method as a filtering option so XML can be transformed into relational data. If you don't want any XML in your current database, then create an small Oracle database with XML DB installed (if doable 11.1.0.7 regarding the best performance --> all the new fast optimizer stuff etc). Use that database as a staging area that does all the XML shredding for you into relational components and ship the end result via database links and or materialized views or other probably known methodes into your relational database that isn't allowed to have XMLType.
    This way you would keep your realtional Oracle database clean and have the Oracle XML DB staging database do all the filtering and shredding into relational components.
    Throwing the XML DB option out off the window beforehand would be like replacing your Mercedes with a bicycle. With both you will be able to travel the distance from Paris to Rome, but it will take you a hell of lot longer.
    :-)

  • Insert data into the xml schema-based xmltype table problem!

    Hello, there,
    I got problem in inserting data into the xmltype table after registered XML schema and created table. details see below:
    1) xml schema:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2007 sp2 (http://www.altova.com) by Constantin Ilea (EMERGIS INC) -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.emergis.com/eHealth/EHIP/data/meta/profile:v1" targetNamespace="http://www.emergis.com/eHealth/EHIP/data/meta/profile:v1" elementFormDefault="qualified">
         <!-- ************** PART I: BEGIN SIMPLE OBJECT TYPE DEFINITIONS ********************************** -->
         <xs:simpleType name="RoutingType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="Synch"/>
                   <xs:enumeration value="Asynch"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="StatusType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="ACTIVE"/>
                   <xs:enumeration value="VOID"/>
                   <xs:enumeration value="PENDING"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="SenderApplicationType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="PR"/>
                   <xs:enumeration value="CR"/>
                   <xs:enumeration value="POS"/>
                   <xs:enumeration value="CPP"/>
                   <xs:enumeration value="Other"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="ServiceTypeType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="IS"/>
                   <xs:enumeration value="WS"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="RouteDirect">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="Request"/>
                   <xs:enumeration value="Reply"/>
                   <xs:enumeration value="None"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="Indicator">
              <xs:annotation>
                   <xs:documentation>can we also change the value to "ON" and "OFF" instead? in this way this cn be shared by all type of switch indicator</xs:documentation>
              </xs:annotation>
              <xs:restriction base="xs:string">
                   <xs:enumeration value="YES"/>
                   <xs:enumeration value="NO"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="RuleType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="ControlAct"/>
                   <xs:enumeration value="WSPolicy"/>
                   <xs:enumeration value="AccessControl"/>
                   <xs:enumeration value="Certification"/>
                   <xs:enumeration value="MessageConformance"/>
                   <xs:enumeration value="Variant"/>
                   <xs:enumeration value="Routing"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="HL7Result">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="ACCEPT"/>
                   <xs:enumeration value="REFUSE"/>
                   <xs:enumeration value="REJECT"/>
                   <xs:enumeration value="ACK"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="IIPType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="PUT"/>
                   <xs:enumeration value="GET/LIST"/>
                   <xs:enumeration value="NOTIF"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="ProfileTypeType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="IIPProfile"/>
                   <xs:enumeration value="BizOperationProfile"/>
                   <xs:enumeration value="OrchestrationProfile"/>
                   <xs:enumeration value="DomainObjectProfile"/>
                   <xs:enumeration value="ServiceProfile"/>
                   <xs:enumeration value="ExceptionProfile"/>
                   <xs:enumeration value="CustomizedProfile"/>
                   <xs:enumeration value="SystemProfile"/>
                   <xs:enumeration value="HL7XMLSchemaProfile"/>
                   <xs:enumeration value="EnricherParametersProfile"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="ParameterType">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="String"/>
                   <xs:enumeration value="Object"/>
                   <xs:enumeration value="Number"/>
                   <xs:enumeration value="Document"/>
              </xs:restriction>
         </xs:simpleType>
         <!-- ************** PART I: END SIMPLE OBJECT TYPE DEFINITIONS ********************************** -->
         <!-- ************** PART II: BEGIN COMPLEX OBJECT TYPE DEFINITIONS ********************************** -->
         <!-- *********************** begin new added objects, by rshan *************************************** -->
         <xs:complexType name="ProfileType">
              <xs:annotation>
                   <xs:documentation>
              1.Profile IS USED TO BE AN WRAPPER ELEMENT FOR ALL KIND OF PROFILES NO MATTER WHAT KIND OF PROFILE IT IS
              2.ProfileID used to uniquely identify the current profile
              3.ProfileData used to hold all the necessary profile related data
              </xs:documentation>
              </xs:annotation>
              <xs:sequence>
                   <xs:element name="ProfileID" type="ProfileIDType">
                        <xs:annotation>
                             <xs:documentation>this will hold all the common attributes, espically the global unique identifier to the profile, no matter what type of profile is</xs:documentation>
                        </xs:annotation>
                   </xs:element>
                   <xs:element name="ProfileData" type="ProfileDataType">
                        <xs:annotation>
                             <xs:documentation>all the non-common profile meta data that attached to each specific profile type such as IIPProfile, OrchestrationProfile, and BizOperationProfile will be placed here</xs:documentation>
                        </xs:annotation>
                   </xs:element>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="ProfileIDType">
              <xs:annotation>
                   <xs:documentation>global unique identifier and all the common attributes across all different profiles, the @ID and @Type together will be used as the primary key to identify the profile data</xs:documentation>
              </xs:annotation>
              <xs:attribute name="ID" type="xs:ID" use="required">
                   <xs:annotation>
                        <xs:documentation>ID is the global unique identifier to the profile, no matter what type of profile it is</xs:documentation>
                   </xs:annotation>
              </xs:attribute>
              <xs:attribute name="Name"/>
              <xs:attribute name="Description"/>
              <xs:attribute name="Version">
                   <xs:annotation>
                        <xs:documentation>version of the profile data</xs:documentation>
                   </xs:annotation>
              </xs:attribute>
              <xs:attribute name="Type" type="ProfileTypeType" use="required">
                   <xs:annotation>
                        <xs:documentation>value to identify the ProfileType type within
                        IIPProfile,BizOperationProfile,OrchestrationProfile,DomainObjectProfile
                        ServiceProfile,ExceptionProfile,SystemProfile,HL7XMLSchemaProfile,
                        EnricherParametersProfile,CustomizedProfile
                        </xs:documentation>
                   </xs:annotation>
              </xs:attribute>
              <xs:attribute name="Status" type="StatusType" default="ACTIVE">
                   <xs:annotation>
                        <xs:documentation>used to show the related profile data status like "ACTIVE","PENDING","VOID"...</xs:documentation>
                   </xs:annotation>
              </xs:attribute>
              <!--
              <xs:sequence>
                   <xs:element name="ProfileReference" type="ProfileIDType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                             <xs:documentation>this will be the place to hold the integrity relationship with other profiles like foreign key if existed and necessary to show up</xs:documentation>
                        </xs:annotation>
                   </xs:element>
              </xs:sequence>
              -->
         </xs:complexType>
         <xs:complexType name="ProfileDataType">
              <xs:annotation>
                   <xs:documentation>meta data associated tightly to each specific type of profile</xs:documentation>
              </xs:annotation>
              <xs:choice>
                   <xs:element name="EnricherParametersProfileData" type="EnricherParametersDataType">
                        <xs:annotation>
                             <xs:documentation>Enricher Parameters related profile data
                   1. one instance of this type may contains all the related System metadata.
                   2. idType part may use to identify different version/release/status
                   </xs:documentation>
                        </xs:annotation>
                   </xs:element>
                   <xs:element name="ExtendProfileData" type="ExtendProfileDataType">
                        <xs:annotation>
                             <xs:documentation>If needed, any profile data not defined within the current release scope can be added here </xs:documentation>
                        </xs:annotation>
                   </xs:element>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="ExtendProfileDataType">
              <xs:sequence>
                   <xs:element name="ExtendProfile" type="xs:anyType" minOccurs="0"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="EnricherParametersDataType">
              <xs:sequence>
                   <xs:element name="EnricherParameter" type="EnricherParameter" maxOccurs="unbounded"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="EnricherParameter">
              <xs:sequence>
                   <xs:element ref="Enricher"/>
              </xs:sequence>
              <xs:attribute name="serviceName" type="xs:string" use="required"/>
              <xs:attribute name="interactionID" type="xs:string"/>
         </xs:complexType>
         <xs:element name="Enricher">
              <xs:annotation>
                   <xs:documentation>Comment describing your root element</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Parameters" type="Parameters"/>
                        <xs:element ref="Section" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <xs:complexType name="ValueType">
              <xs:attribute name="field" use="required"/>
              <xs:attribute name="value"/>
              <xs:attribute name="action"/>
         </xs:complexType>
         <xs:element name="Section">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Value" type="ValueType" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
                   </xs:sequence>
                   <xs:attribute name="path" use="required"/>
              </xs:complexType>
         </xs:element>
         <xs:complexType name="Parameters">
              <xs:sequence>
                   <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
                        <xs:complexType>
                             <xs:attribute name="name" use="required"/>
                             <xs:attribute name="reference"/>
                        </xs:complexType>
                   </xs:element>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="RuleList">
              <xs:annotation>
                   <xs:documentation>an array of rules</xs:documentation>
              </xs:annotation>
              <xs:sequence>
                   <xs:element name="Rule" type="RuleProfile" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="RuleProfile">
              <xs:attribute name="RName" use="required"/>
              <xs:attribute name="RType" type="RuleType" use="required"/>
              <xs:attribute name="Status" default="ON">
                   <xs:annotation>
                        <xs:documentation>By default is ON (or if is missing)</xs:documentation>
                   </xs:annotation>
              </xs:attribute>
              <xs:attribute name="Order"/>
              <xs:attribute name="Direction" type="RouteDirect">
                   <xs:annotation>
                        <xs:documentation>Request / Reply</xs:documentation>
                   </xs:annotation>
              </xs:attribute>
         </xs:complexType>
         <!-- ************** PART II: END COMPLEX OBJECT TYPE DEFINITIONS *********************************** -->
         <!-- ************** PART III: BEGIN ROOT ELEMENTS DEFINITIONS ********************************* -->
         <!-- 0) Profile wrapper root element
    Profile IS USED TO BE AN WRAPPER ELEMENT FOR ALL KIND OF PROFILES NO MATTER WHAT KIND OF PROFILE IT IS
    -->
         <xs:element name="Profile" type="ProfileType">
              <xs:annotation>
                   <xs:documentation>Profile IS USED TO BE AN WRAPPER ELEMENT FOR ALL KIND OF PROFILES NO MATTER WHAT KIND OF PROFILE IT IS</xs:documentation>
              </xs:annotation>
         </xs:element>
    </xs:schema>
    2)register xml schema:
    SQL> begin
    2 dbms_xmlschema.registerSchema
    3 (
    4 schemaurl=>'http://rac3-1-vip:8080/home/'||USER||'/xsd/EHIPProfile_v00.xsd',
    5 schemadoc=>xdbURIType('/home/'||USER||'/xsd/EHIPProfile_v00.xsd').getClob(),
    6 local=>True,
    7 gentypes=>True,
    8 genbean=>False,
    9 gentables=>False
    10 );
    11 End;
    12 /
    PL/SQL procedure successfully completed.
    SQL>
    SQL>
    3) xml data:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--Sample XML file generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
    <Profile xmlns="http://www.emergis.com/eHealth/EHIP/data/meta/profile:v1">
         <ProfileID Type="EnricherParametersProfile" Status="ACTIVE" ID="EnricherPP.ID.0001" Name="EnricherPP.ID.0001" Description="EnricherPP.ID.0001" Version="01"/>
         <ProfileData>
              <EnricherParametersProfileData>
                   <EnricherParameter serviceName="LRS_BusinessDomainObject.lrs.businessDomainObject.domainObjectBuilder.concrete.ExceptionCreators:createExceptionV50CategoryCanonicalPart" interactionID="">
                   <Enricher>
                        <Parameters>
                             <Parameter name="MESSAGE_ID" reference="test"/>
                        </Parameters>
                        <Section path="HEADER">
                             <Section path="RESPONSE_TYPE">
                                  <Value field="value" value="I"/>
                             </Section>
                             <Section path="HL7_STANDARD_VERSION">
                                  <Value field="value" value="HL7V3"/>
                             </Section>
                             <Section path="DESIRED_ACKNOWLEDGMENT_TYPE">
                                  <Value field="value" value="NE"/>
                             </Section>
                             <Section path="SENDING_NETWORK_ADDRESS">
                                  <Value field="value" value=""/>
                             </Section>
                             <Section path="SENDING_APPLICATION_IDENTIFIER">
                                  <Value field="root" value="2.16.840.1.113883.3.133.1.3"/>
                                  <Value field="extension" value=""/>
                             </Section>
                             <Section path="SENDING_APPLICATION_NAME">
                                  <Value field="value" value="NL HIAL"/>
                             </Section>
                        </Section>
                   </Enricher>
         </EnricherParameter>
              <EnricherParameter serviceName="LRS_BusinessDomainObject.lrs.businessDomainObject.domainObjectBuilder.concrete.DomainObjectCreators:createFindClientsAssociatedIdentifersRequestObject" interactionID="PRPA_IN101105CA">
                   <Enricher>
                        <Parameters>
                             <Parameter name="MESSAGE_ID" reference="test"/>
                        </Parameters>
                        <Section path="HEADER">
                             <Section path="RESPONSE_TYPE">
                                  <Value field="value" value="I"/>
                             </Section>
                             <Section path="HL7_STANDARD_VERSION">
                                  <Value field="value" value="HL7V3"/>
                             </Section>
                             <Section path="PROCESSING_CODE">
                                  <Value field="value" value="T"/>
                             </Section>
                             <!--
                             <Section path="PROCESSING_MODE_CODE">
                                  <Value field="value" value="T"/>
                             </Section>
                             -->                         
                             <Section path="DESIRED_ACKNOWLEDGMENT_TYPE">
                                  <Value field="value" value="NE"/>
                             </Section>
                             <Section path="RECEIVER_NETWORK_ADDRESS">
                                  <Value field="value" value="prsunew.moh.hnet.bc.ca"/>
                             </Section>
                             <Section path="RECEIVER_APPLICATION_IDENTIFIER">
                                  <Value field="root" value="2.16.840.1.113883.3.40.5.1"/>
                                  <Value field="extension" value=""/>
                             </Section>
                             <Section path="SENDING_NETWORK_ADDRESS">
                                  <Value field="value" value=""/>
                             </Section>
                             <Section path="SENDING_APPLICATION_IDENTIFIER">
                                  <Value field="root" value="2.16.840.1.113883.3.133.1.3"/>
                                  <Value field="extension" value=""/>
                             </Section>
                             <Section path="SENDING_APPLICATION_NAME">
                                  <Value field="value" value="NL HIAL"/>
                             </Section>
                        </Section>
                   </Enricher>
         </EnricherParameter>
              <EnricherParameter serviceName="LRS_BusinessDomainObject.lrs.businessDomainObject.domainObjectBuilder.concrete.DomainObjectContentEnrichers:enrichPRRequest" interactionID="">
    <!--Sample XML file generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
    <Enricher>
         <Parameters>
              <Parameter name="MESSAGE_IDENTIFIER" reference="test"/>
         </Parameters>
         <Section path="HEADER">
              <Section path="HL7_STANDARD_VERSION">
                   <Value field="value" value="V3PR2"/>
              </Section>
              <!--POS/CPP populated ?-->
              <!--Not sure if this should be set as a variance within EHIP or if we expect the POS/CPP to provide this value-->
              <Section path="PROCESSING_CODE">
                   <Value field="value" value="T"/>
              </Section>
              <!--POS/CPP populated ?-->
              <Section path="PROCESSING_MODE_CODE">
                   <Value field="value" value="T"/>
              </Section>
              <!--POS/CPP populated ?-->
              <Section path="DESIRED_ACKNOWLEDGMENT_TYPE">
                   <Value field="value" value="NE"/>
              </Section>
              <!-- note:We Expect PRS to give us a web service address -->                    
              <!--<Section path="RECEIVER_NETWORK_ADDRESS">
                   <Value field="value" value="_http://PRSServer/svcName"/>
              </Section>
              -->
              <Section path="RECEIVER_APPLICATION_IDENTIFIER[0]">
                   <Value field="root" value="2.16.840.1.113883.3.40.1.14"/>
                   <Value field="extension" value="SIT1"/>
              </Section>
              <!-- note: values of the fields to be provided by PRS -->
              <Section path="RECEIVER_APPLICATION_NAME[0]">
                   <Value field="value" value="receiverAppName"/>
              </Section>
              <!-- note: RECEIVER_ORGANIZATION has an extra trailing space, as in the Excel mapping spreadsheet -->
              <!-- note: values of the fields to be specified by PRS later -->
              <Section path="RECEIVER_AGENT/RECEIVER_ORGANIZATION/RECEIVER_ORGANIZATION_IDENTIFIER[0]">
                   <Value field="root" value="2.16.840.1.113883.3.40.4.1"/>
                   <Value field="extension" value="receiverOrgId"/>
              </Section>
              <Section path="SENDING_APPLICATION_NAME[0]">
                   <Value field="value" value="NLPRSCLNT"/>
              </Section>
              <!-- note: SENDING_ORGANIZATION has an extra trailing space, as in the Excel mapping spreadsheet -->
              <!-- note: values of the fields to be specified by PRS later -->
              <Section path="SENDING_AGENT/SENDING_ORGANIZATION/SENDING_ORGANIZATION_IDENTIFIER[0]">
                   <Value field="root" value="2.16.840.1.113883.4.3.57"/>
                   <Value field="extension" value="3001"/>
              </Section>
              <Section path="PERFORMER/HEALTHCARE_WORKER_IDENTIFIER[0]">
                   <Value field="root" value="2.16.840.1.113883.4.3.57"/>
                   <Value field="extension" value="HIAL_USR"/>
              </Section>          
         </Section>
         <Section path="PAYLOAD">
              <!--<Section path="QUERY_STATUS_CODE">
                   <Value field="value" value="New"/>
              </Section>-->
              <!-- note: AUDIT has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="AUDIT[0]/AUDIT_INFORMATION">
                   <Value field="code" value="LATEST"/>
                   <Value field="codeSystem" value="PRSAuditParameters"/>
              </Section>
              <!-- note: CONFIDENCE has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="CONFIDENCE/CONFIDENCE_VALUE">
                   <Value field="value" value="100"/>
              </Section>
              <!-- note: HISTORY has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="HISTORY/INCLUDE_HISTORY_INDICATOR">
                   <Value field="value" value="false"/>
              </Section>
              <!-- note: JURISDICTION has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="JURISDICTION/JURISDICTION_TYPE">
                   <Value field="value" value="NL"/>
              </Section>
              <!-- note: RESPONSE_OBJECT has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[0]">
                   <Value field="code" value="GRS_ADDRESS"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[1]">
                   <Value field="code" value="GRS_ELECTRONIC_ADDRESS"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[2]">
                   <Value field="code" value="GRS_IDENTIFIER"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[3]">
                   <Value field="code" value="GRS_ORGANIZATION_NAME"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[4]">
                   <Value field="code" value="GRS_PERSONAL_NAME"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[5]">
                   <Value field="code" value="GRS_REGISTRY_IDENTIFIER"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[6]">
                   <Value field="code" value="GRS_TELEPHONE"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[7]">
                   <Value field="code" value="PRS_CONDITION"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[8]">
                   <Value field="code" value="PRS_CONFIDENTIALITY_INDICATOR"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[9]">
                   <Value field="code" value="PRS_DEMOGRAPHIC_DETAIL"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[10]">
                   <Value field="code" value="PRS_DISCIPLINARY_ACTION"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[11]">
                   <Value field="code" value="PRS_INFORMATION_ROUTE"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[12]">
                   <Value field="code" value="PRS_NOTE"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[13]">
                   <Value field="code" value="PRS_PROVIDER_CREDENTIAL"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[14]">
                   <Value field="code" value="PRS_PROVIDER_EXPERTISE"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[15]">
                   <Value field="code" value="PRS_PROVIDER_RELATIONSHIP"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[16]">
                   <Value field="code" value="PRS_STATUS"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[17]">
                   <Value field="code" value="PRS_WORK_LOCATION"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[18]">
                   <Value field="code" value="PRS_WORK_LOCATION_ADDRESS"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[19]">
                   <Value field="code" value="PRS_WORK_LOCATION_DETAIL"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[20]">
                   <Value field="code" value="PRS_WORK_LOCATION_ELECTRONIC_ADDRESS"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[21]">
                   <Value field="code" value="PRS_WORK_LOCATION_INFORMATION_ROUTE"/>
              </Section>
              <Section path="RESPONSE_OBJECT[0]/PROVIDER_QUERY_RESPONSE_OBJECT[22]">
                   <Value field="code" value="PRS_WORK_LOCATION_TELEPHONE"/>
              </Section>
              <!-- note: ROLE_CLASS has an extra trailing space, as in the Excel mapping spreadsheet -->
              <Section path="ROLE_CLASS /ROLE_CLASS_VALUE">
                   <Value field="value" value="LIC"/>
              </Section>
              <Section path="SORT_CONTROL[0]/SORT_CONTROL_ELEMENT_NAME">
                   <Value field="code" value="PrincipalPerson.name.value.family"/>
              </Section>
              <Section path="SORT_CONTROL[0]/SORT_CONTROL_DIRECTION_CODE">
                   <Value field="value" value="A"/>
              </Section>
         </Section>
    </Enricher>
         </EnricherParameter>
              </EnricherParametersProfileData>
         </ProfileData>
    </Profile>
    the data is valid against the schema through XML Spy tool... and loaded into the XDB repository...
    4) create table and insert data:
    SQL> CREATE TABLE EHIP_PROFILE OF SYS.XMLTYPE
    2 XMLSCHEMA "http://rac3-1-vip:8080/home/EHIPSBUSER1/xsd/EHIPProfile_v00.xsd" ELEMENT "Profile"
    3 ;
    Table created.
    SQL>
    SQL> alter table EHIP_PROFILE
    2 add CONSTRAINT EHIP_PROF_PK PRIMARY KEY(XMLDATA."ProfileID"."ID",XMLDATA."ProfileID"."Type");
    Table altered.
    SQL>
    SQL>
    SQL>
    SQL>
    SQL> select xdbURIType('/home/'||USER||'/ProfileData/EnricherPP.ID.0001.xml').getClob() from dual;
    XDBURITYPE('/HOME/'||USER||'/PROFILEDATA/ENRICHERPP.ID.0001.XML').GETCLOB()
    <?xml version="1.0" encoding="UTF-8"?>
    <!--Sample XML file generated by XMLSpy
    SQL>
    SQL>
    SQL> insert into ehip_profile values(xmltype.createXML(xdbURIType('/home/'||USER||'/ProfileData/EnricherPP.ID.0001.xml').getClob()));
    insert into ehip_profile values(xmltype.createXML(xdbURIType('/home/'||USER||'/ProfileData/EnricherPP.ID.0001.xml').getClob()))
    ERROR at line 1:
    ORA-21700: object does not exist or is marked for delete
    what's the problem caused the "ORA-21700: object does not exist or is marked for delete" error?
    Thanks in advance for your help?

    Thanks Marco,
    Here're my environment:
    SQL> select INSTANCE_NUMBER, INSTANCE_NAME,HOST_NAME,VERSION from v$instance;
    INSTANCE_NUMBER INSTANCE_NAME HOST_NAME VERSION
    2 rac32 RAC3-2 10.2.0.3.0
    I followed your suggested in the above, and always purge recyclebin, but still got the same problem. because in 10gr2, there's no dbms_xmlschema.purge_schema available,
    and I did checked the recyclebin after force the delete of schema, nothing inside. any other recommendation?

  • I cannot see XMLType table in sql*plus

    Hi,
    Although I have wokred extensively with Oracle, I am new to Oracle XMLdb. My problem is I cannot see the XMLType tables created under my schema. I can see the tables when I do a select from user_xml_tables. But if I do a 'desc' or 'select from', I get ORA-04043 or ORA-00942. I can desc an XMLType table owned by xdb. I am using Oralce 10g. Please provide a solution asap as a customer is waiting on this.
    Thanks,
    Jayati Ray

    Raghu !!
    GREAT!!!
    It was a BUG in Oracle sql developer, I installed the new version v3.0, It WORKS like a CHARM.
    Thanks a million for your help!!!
    Cheers
    Tony

  • How to delete an .xml file from xmltype table?

    Hi expert,
    I am in I am in Oracle Enterprise Manager 11g 11.2.0.1.0.
    SQL*Plus: Release 11.2.0.1.0 Production on Tue Feb 22 11:40:23 2011
    I have inserted 3 .xml files into an xmltype table: DOCUMENT
    SQL> SELECT OBJECT_VALUE FROM document;
    OBJECT_VALUE
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <?xml-stylesheet href="http://www.accessdata.fda.gov/spl/stylesheet/spl.xsl" type="text/xsl"?>
    <document xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc
    ation="urn:hl7-org:v3 http://localhost:8080/home/DEV/xsd/spl.xsd" classCode="DOC">
    <id root="5ca4e3cb-7298-4948-8cc2-58e71ad32694"/>
    <code code="51725-0" c
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <?xml-stylesheet href="http://www.accessdata.fda.gov/spl/stylesheet/spl.xsl" type="text/xsl"?>
    <document xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc
    ation="urn:hl7-org:v3 http://localhost:8080/home/DEV/xsd/spl.xsd" classCode="DOC">
    <id root="03d6a2cd-fdda-4fe1-865d-da0db9212f34"/>
    <code code="51725-0" c
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <?xml-stylesheet href="http://www.accessdata.fda.gov/spl/stylesheet/spl.xsl" type="text/xsl"?>
    <document xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc
    ation="urn:hl7-org:v3 http://localhost:8080/home/DEV/xsd/spl.xsd" classCode="DOC">
    <id root="09ff06d6-8b85-43dd-b5cc-e22d00f02bd0"/>
    <code code="51725-0" c
    I tried to delete one xml file which with id root="03d6a2cd-fdda-4fe1-865d-da0db9212f34'
    delete from DOCUMENT
    where xmlexists('$p/document/id[@root="03d6a2cd-fdda-4fe1-865d-da0db9212f34"]'PASSING OBJECT_VALUE AS "p");
    but failed.
    Is there any expert can help?
    Thanks a lot!
    Cow
    Edited by: Cow on Mar 11, 2011 7:02 PM

    Hi,
    Namespace issue.
    You have to declare it in the XQuery prolog :
    DELETE FROM document
    WHERE XMLExists( 'declare default element namespace "urn:hl7-org:v3"; (::)
                      $p/document/id[@root=$root_value]'
                     passing object_value as "p",
                             '03d6a2cd-fdda-4fe1-865d-da0db9212f34' as "root_value" )
    ;

  • The size of a XML document stored in a XMLType table

    Is there a way to find out (via SQL) the size of a XML document stored in a XMLType table or XMLType column (storage OR based)?
    For instance in the way you could it retrieve if the XML document was stored in an XMLType column (CLOB based)
    SQL> r
    1 select dbms_lob.getlength(t.gegevens.getclobval()) "SIZE"
    2 from hgo.hgo010_detam t
    3* where rownum < 2
    SIZE
    2750

    Is there a way to find out (via SQL) the size of a XML document stored in a XMLType table or XMLType column (storage OR based)?
    For instance in the way you could it retrieve if the XML document was stored in an XMLType column (CLOB based)
    SQL> r
    1 select dbms_lob.getlength(t.gegevens.getclobval()) "SIZE"
    2 from hgo.hgo010_detam t
    3* where rownum < 2
    SIZE
    2750

  • How to create a relational view base on an xmltype table which included sev

    Hi,
    I am using oracle 11.2.0.1.0.
    how to create a relational view base on an xmltype table which content several different .xml files?
    Thanks.
    for examle:
    SQL> SELECT OBJECT_VALUE FROM document;
    Edited by: Cow on Jan 6, 2011 7:57 PM

    For example I already have these three xml files inserted into the document xmltype table.
    These xml files have same schemas. I have attached below.
    I want to show all elements/attribute values in xml files to relational view.
    Is this possible to create one big relational view to show everything
    or I have to create three separate relation views then use UNION to put together? Thanks a lot. Cow
    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="http://www.accessdata.fda.gov/spl/stylesheet/spl.xsl" type="text/xsl"?>
    <document xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 http://localhost:8080/home/DEV/xsd/spl.xsd">
    <id root="5ca4e3cb-7298-4948-8cc2-58e71ad32694"/>
    </component>
    </document>
    <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="http://www.accessdata.fda.gov/spl/stylesheet/spl.xsl" type="text/xsl"?>
    <document xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 http://localhost:8080/home/DEV/xsd/spl.xsd">
    </component>
    </document>
    Edited by: Cow on Jan 4, 2011 9:51 AM

  • XMLType table Core Dump using CLOB

    I've created an object based XMLType table based on a valid XML Schema. The Schema has an element which has been declared as a CLOB.
    <xs:element name="complete_entry" xdb:SQLType="CLOB" xdb:SQLName="complete_entry"/>
    This registers ok with Oracle and the object that this element is in shows the element as a CLOB as expected.
    However when performing a insert into this table, SQLPlus gives and end-of-communication error and the server core dumps.
    A PL/SQL function retreives an XML file from the file system for insert, here is the code for the function:
    create or replace function getClobDocument(
    filename in varchar2,
    charset in varchar2 default NULL)
    return CLOB deterministic
    is
    file bfile := bfilename('DIR',filename);
    charContent CLOB := ' ';
    targetFile bfile;
    lang_ctx number := DBMS_LOB.default_lang_ctx;
    charset_id number := 0;
    src_offset number := 1 ;
    dst_offset number := 1 ;
    warning number;
    begin
    if charset is not null then
    charset_id := NLS_CHARSET_ID(charset);
    end if;
    targetFile := file;
    DBMS_LOB.fileopen(targetFile, DBMS_LOB.file_readonly);
    DBMS_LOB.LOADCLOBFROMFILE(charContent, targetFile,
    DBMS_LOB.getLength(targetFile), src_offset, dst_offset,
    charset_id, lang_ctx,warning);
    DBMS_LOB.fileclose(targetFile);
    return charContent;
    end;
    The function is called like so:
    INSERT INTO boss_contracts
    VALUES(XMLTYPE(getCLOBDocument('contract_82.xml','UTF8')));
    This works perfectly when the element is declared as a string and Oracle converts it to a varchar2(4000), but core dumps when it is a CLOB.
    I need this element to be able to handle more than 4k of data.
    please help,
    Paul Linney
    [email protected]

    void print_affect(struct oci_connection* conn, OCIStmt* sh) {
    sb2 rowCount;
    ub4 sizep = sizeof(sb2);
    OCIAttrGet(sh, OCI_HTYPE_STMT,&rowCount,
    &sizep,OCI_ATTR_ROW_COUNT, conn->err);OCI_ATTR_ROW_COUNT is a ub4 attribute, not a sb2 one.
    ub4 rowCount = 0;
    ub4 size = sizeof(rowCount);
    --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Problem in select of xmltype table

    Hi,
    i have a xmltype table with an object type/atrribute of datatype CLOB. When i now do a query i get the error ORA-22835 - what's going wrong? The datatype of the source attribute and the declared variable is CLOB.
    DECLARE
      vFoto  CLOB;
    BEGIN
      SELECT SUBSTR(pe.foto_pass, 1, 100) INTO vFoto
        FROM fp_epass_pass_antraege pa
           , XMLTABLE('/PassAntrag'
             PASSING pa.sys_nc_rowinfo$
             COLUMNS antrag     XMLTYPE PATH '/PassAntrag/Antrag'
                   , person     XMLTYPE PATH '/PassAntrag/Person') paan
           , XMLTABLE('/'
             PASSING paan.antrag
             COLUMNS uuid       VARCHAR2(38) PATH 'UUID') an
           , XMLTABLE('/'
             PASSING paan.person
             COLUMNS foto_pass  CLOB PATH 'FotoPass') pe
             WHERE an.uuid = '84239536904120131828493266953553299522';
    END;Many thanks in advance.
    Regards,
    Martin

    Hi Odie,
    i thoght taht's a PL/SQL problem ;-)
    Versions:
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE     11.2.0.2.0     Production
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    <?xml version="1.0" encoding="ISO-8859-15" standalone='no'?>
    <PassAntrag>
      <Antrag>
        <UUID>53075802924980786961041180181729965505</UUID>
        <DocTyp>ID</DocTyp>
        <Antragsgrund>EAN</Antragsgrund>
        <AntragDatum>06.02.2013</AntragDatum>
        <AntragOrt/>
      </Antrag>
      <Person>
        <Name>Zillweger</Name>
        <Vorname>Michel</Vorname>
        <Geburtsdatum>16.06.1964</Geburtsdatum>
        <Geschlecht>M</Geschlecht>
        <Passtitel/>
        <Groesse>178</Groesse>
        <Strasse>Riverside Ave</Strasse>
        <Hausnummer>4</Hausnummer>
        <PLZ>23413454</PLZ>
        <Ort>New York</Ort>
        <LandIso316613>USA</LandIso316613>
        <Telefon>2314132413</Telefon>
        <Email/>
        <Versand>EDA</Versand>
        <Lieferadresse>Switzerland Embassy , United States
    20008-3499
    Washington DC
    District of Columbia
    USA</Lieferadresse>
        <BesKennz/>
        <NameVornameVater>Zillweger André</NameVornameVater>
        <LedNameVornameMutter>Voirol Odile</LedNameVornameMutter>
        <NameVornameEhepartner>Zillweger Françoise</NameVornameEhepartner>
        <NameVornameVertreter/>
        <FotoID></FotoID>
        <FotoPass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <SignID>LzlqLzRBQVFTa1pKUmdBQkFnQUFBUUFCQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FEWkFrOERBU0lBQWhFQkF4RUIvOFFBSHdBQUFRVUJBUUVCQVFFQUFBQUFBQUFBQUFFQ0F3UUZCZ2NJQ1FvTC84UUF0UkFBQWdFREF3SUVBd1VGQkFRQUFBRjlBUUlEQUFRUkJSSWhNVUVHRTFGaEJ5SnhGREtCa2FFSUkwS3h3UlZTMGZBa00ySnlnZ2tLRmhjWUdSb2xKaWNvS1NvME5UWTNPRGs2UTBSRlJrZElTVXBUVkZWV1YxaFpXbU5rWldabmFHbHFjM1IxZG5kNGVYcURoSVdHaDRpSmlwS1RsSldXbDVpWm1xS2pwS1dtcDZpcHFyS3p0TFcydDdpNXVzTER4TVhHeDhqSnl0TFQxTlhXMTlqWjJ1SGk0K1RsNXVmbzZlcng4dlAwOWZiMytQbjYvOFFBSHdFQUF3RUJBUUVCQVFFQkFRQUFBQUFBQUFFQ0F3UUZCZ2NJQ1FvTC84UUF0UkVBQWdFQ0JBUURCQWNGQkFRQUFRSjNBQUVDQXhFRUJTRXhCaEpCVVFkaGNSTWlNb0VJRkVLUm9iSEJDU016VXZBVlluTFJDaFlrTk9FbDhSY1lHUm9tSnlncEtqVTJOemc1T2tORVJVWkhTRWxLVTFSVlZsZFlXVnBqWkdWbVoyaHBhbk4wZFhaM2VIbDZnb09FaFlhSGlJbUtrcE9VbFphWG1KbWFvcU9rcGFhbnFLbXFzck8wdGJhM3VMbTZ3c1BFeGNiSHlNbkswdFBVMWRiWDJObmE0dVBrNWVibjZPbnE4dlAwOWZiMytQbjYvOW9BREFNQkFBSVJBeEVBUHdEMytpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQURvS2htdW9MZUNXZWVWSW9JbEx5U3lIYWlLQmtzU2VBQUIxcmovaU44UUxmd0xvOGNnakZ4cUY1dVcwaEtrb1NvRzVtSS9oRzVlT3B5QjZrZU1XZWgrTi9qUHFhWDJvUytUcGtaSml1SllXU0NOR2ZETENvKyszRGNrL3dBTXcrVTBBZXkyM3hmOENYVndrRWV1cUhkd2dNbHRNaTVQY3N5QUFlNUlBNzEzQU9hOEs4Wi9CN3czNGI4RlgrcFcxM2VpNXRjTWozTWdLdnVaQjViQlU2ZGNjRGwvbU9QdTlaOERwTHh2aDc1ZDE1bmxSWGtxV3hkTm9NZUZZNE9QbUc5cE9jbm5JenhnQUhwTkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJXUDRrOFI2WjRZMFdYVXRVdVBKaFg1VVZlWkpIT2NJZzdzY0hqMkpPQUNScmtnZFNCM3I1aThjNnZxL3hPK0l6Nk5vaG5uMDZHUllJQkh2ZUViV0t0Y3NFTEx0M09mM21QdWJlTTlRQ0xROUUxYjQxK1BiN1U3NjRrZzA2SmxNNUxCekJDeFBsd1JqR004SG5HUHZNY2s0UDAvYjI4VnJieHdRUnBIREdvU09ORkNxaWdZQUFIQUFBNlZuK0hkQnNQRE9nMm1qNmFqcmEycWJVOHh0ekhKTEVrK3BKSjQ0NTRBSEZhbEFIbmZ4Ymx1YnJSTERRclFTTlBxVjJxN0ZDNGtWU01LUzNUNXloei9zbmtWMldnYVZEb2VnV09sd2JObHJDc1pLSnNETUJ5MjNuQkp5VHllU2VUMXE4OXZCSk5GTThNYlN4Wjh0MlVGa3lNSEI3WnFRREF3T2xBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJWSFY5U2gwalJyM1VwdzdRMmNFbHhJc2VOeFZGTEVESkF6eDNJb0E4citPL2paOUswdVB3dFpFTGRhbEZ2dUpBV0RSdzdzQURBd2Q1VmxQUFFFRWZOa2F2d2Q4Qy84STE0YUYvcU5uNU9zMytXazN4NGtpaHo4c2ZKT004T2VGT1NBd3l0ZWMrR05QdS9peDhXYnJXcjkydU5Gc1poTVk3Z3J4Q1N6UVFCTUVFSGI4Mk9DQStUa2duNlRvQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVWhPS1U5SzhtK0xIeExrOE93eTZEcFJ6cXNzWDc2WFBFRWJxdzRaWERKS1BsWVpIUWc5NkFQVnc0SndNZE05YWRYekw4RHRRMUMxK0lTV2RzcnRhWGNFZ3VsRzRoVlVGbGM4NEJEYlZERWZ4a2RXcjZhb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWszRDE5cXFhaHErbTZUYkM1MUxVTFd6Z1p3Z2x1WmxqVXRnbkdXSUdjQW44S0FMRTg4VnJieVhFOHFSUXhLWGVTUmdxb29HU1NUMEFIZXZQYno0MitFYkxXbjA1M3U1RlNYeTJ1NFl3MEh1UWM1SUhxQWM0NHlNR3ZQOEE0cWZGZTExcTFoMG53NWZ5U1dMQXZjM0VmbVJNL0RLWWlyQmNwZzVPY2c1SFRhYzhEWndQNHgxSFJ2RG1pYVZCYjNPWkJMY1NTNWFlUTRMdXpZRzFGVk1oUUNSZzQzTWFBUHIrM3VJYnFDT2Uza1NXR1JROGNpTUdWMUl5R0JIQkJIZXBhcDZYcDhlazZYWjZkQThqUVdrQ1FSdElRV0lWUW9KSUE1d093RlhLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQXJ3ejQvK0xiZGJHMThNV3M1YTZNbjJpOFdLVWpZaXI4aU9BTUhjU0d3VHhzVTQ1QnIydSt2cmZUYkc0dmJ1UXgyMXZFMDBzbTBrS2lnbGp4endBYStiL0J1bm40dC9GcTkxN1U3VVFXVUpTNmxoUlBNamZac1dLRml3d2NxdVR4ODIxc0FaNEFQWC9oUDRVbDhLZUJMVzJ1ZzZYbDB4dTU0MjQ4dG5VQUxnZ0VFS0Z5RC9GdTU2VjNOSUJqclMwQUZGRkZBQlJSU0ZnQ00wQUxSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVoSUZBR0Q0eDhWV3ZnL3dBT1hHcjNTZWFJOEpGQUhDdE5JeHdxalA0azljQUU0T0s4QTBHdzhydy9ySHhJMTJiL0FFa3l1Tk15dmx2TGZGd3l6QVpWV1ZXejh1R0hFbkh5NE92NC93Qld2L2lIOFRiZndaWXp4clkyMTRZMWFOV0IzQkI1ck9HWUs1ajJTNHhqaklHY2cwdnhjdW9OT3R0RStIT2lXaVRXOW9zVW1Jc1BNMHAzS3FsVkgzanUzbmpMRjFQR2VRRGYrQW5obnlOTnVmRTg2anpMek1GcmpvSWxQemtZUDhUcUJ5QVI1ZWVqVjdQV1I0WTBHTHd6NGNzZEhnY1NKYXhoVElGMitZeDVac1pPTXNXT004WnJYb0FLS0tLQUNpaWlnQW9wQ1FDQWUvU3ZOby9qUG9OMTRyc2RIMDIzdWIyRzZuV0UzYXJzVldjZ0x0VS9NdzNIRFoyNEFKRzZnRDBxaWtWZzJjZHFXZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLQ2NEcFFBSG9hOC84QUhYeFowZndWUDloOGlUVU5TMkJqYnhPRldMSkdCSXg1VWtFa0FBbmpuQUlOY1o4ZFBIS0NNZUZOT2FaYmxaRWx2SkFTaWdiZHl4LzdXZHl0bm9NREdUbmJMOE92Z3ZOYVhVT3QrTEZqa3VGTW8vc3lVTE1wemtCcEd5eXR3V09Cbm5hZDNHS0FNZytKdmlqOFJybkdpd1hHbDZWY2pDVFFMNU1hSXN2M3ZQUHpNdzRCMkVaQ25DOVJYT2VNL2h6cmVnVzAycStLUEVkcGNYYzRDUVJyUExQUGN1Q29PUzRYNVZUSnllbTFSL0VLK29vb0lyVzBqZ2dpU0tHSkFpUnhyaFZVREFBQTZBRGdDdm4zeDllVGZFUDRxMm5oYXhiYmJXa3JXdS9nWWJPWjN3ZHBPMExqYm5COHZJKzhLQUxQd28rRkdrYTVvamEzNGhna3VFdU1wYXdpVW91Rk9Ha3lqYnM3Z3lnY0Rnbm5JSTl2MGpROU0wR3dTeTBteGhzN2RjZkpFdU54Q2hjc2VyTmhSbGprbkF5YXQyOXZGYXdSd1FScEZCRWdTT05CaFVVREFBSFlBQ3BhQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vcEQwT2FBUEl2ajU0cHQ3RHd4RjRkUmxhNjFGbGtrN21LR05nMlRnNUJMS0FDUVFkcjl4V3o4Ry9Cdi9BQWl2ZytPNXU3U2UyMWZVZjN0M0hNM0tLR2J5MTI5RitVNUlQelpZNTZZSGwrdUxEOFJQMmhGMHE2bFpkUGduTnFFZEFwTWNDbHBFQlVnNFoxZkRaeUF3UGJGZlN0QUJSUlJRQVVVVmsrSS9FZW0rRnRIbDFQVkpTa0tmS3FxTXZJMk9FVWQyT1A2bkFCSUFKdGIxaTAwSFJielZieVFMYjJrVFNQeU10aitFWklCWW5BQXp5U0JYaFd1ZkdEeEw0cDhUV2VtZUNZWnJhTi9rVkhoamtsbVlqTE0yUXlxb0dlaDZCaVQyWGl2Ry9qZldQSEY3TmZTTGRXK2xJOGFKWmh6SkZBMjFzYmlBQnVQNzBna2JzQWdaQXIwdjREK0NVUzAvNFM2OVVtVnpKRFl4c2lrS3ZBYVVISklKSVpCMHdBM1VNTUFIdDlGRkZBQlJSUlFBVVVVVUFGRkZGQUJYQ2ZGbnhjUENuZ3VmeUp0bW8zMmJlMjJ2aDB5UG5rR0NHK1VkQ000Wmt5T2E3dXZuRHhWUEw4VHZpN2JhUHBrN1hta1d6SkY1bG8zeXBCbFROS0MyVnpra2JnTU50akEzWjVBT3krQ25oaVBRUENsejRsMUpVZ252a0xMSk1ObmsyeTg1TE1BVkRFRmp5VktoRFhHZkNuVHB2SG54SXZ2RW1zR1NjV2ppOE95VGFxVGwvd0J5b3lTMndCV3dBZUFnVW5Cd2R6NDIrSXJIU2ZEdGo0SDBreGdCWTF1WWxiZVlZWXdwaWpPUVRrbmEzWElDRFBEWnIwajRjZUYvK0VTOEcydW55Z2k5a0p1THpKeVJLd0dSMUkrVUJWeURnN2M5NkFPc0hRVVVVVUFGRkZGQUJWVFU5VHNkRzA2ZlVOUnVZN2EwZ1hmSks1NFVmMUpQQUE1SjRGV21PMFpyNXY4QUZ2aXk4K0szanl5OE42RGQzVU9qeU1JZHBPMVpnRHVlWmtKWGNBRkJWVzUrVVl3V0lvQW4xZnh0NG8rSzJyeStHZERzMXQ5TW1iT3hsRzR4cXlrU1RQZzdjTW9PRnh5MjNMbkdmVXZDUHd3MEh3emJXclMyc045cVVNbm1mYm5qWldKQmJiaFN4QXdHNkRxUXA2Z0VhM2hEd2JwWGc3U2haNmZBZ21kVSsxWEFEQnAzQ2diamtrZ2NFN1FjREp4MU9laW9BUUFBWUZMUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGYzc0MzhVdytFZkNWN3E3R05wa1haYlJ1UmlTVnZ1akdRU1A0aUJ6dFZpT2xkRlh6WjhhUEV4MXZ4bkZvRVdwZVhwMWhzam5HN01RbkpKZVFoQXhPMVNGT1JsU0h3UFVBOCs4TTZSSnIzaUd3MDJOcGQxMU9zVzVFTGxGSitadG83QVpKOWhYMm1veG12bkQ0S2FMTnFYang5WWlWTGEwMDhQSThTWktocFZaRmpHNWl3R0N4Qk9UOG1DZWNuNlFvQTVmeC80b2o4SitFcnkrTXJwY3lxWUxQWWdZK2V5bmFjSGpBeHVPZU1BOWVCWG5md1A4T3RkU2FsNHIxSzFFdHhQSjVkcmN6YjJjazVNempjTUhjU0ZMQWtrcTQ0NXpVK05HcHgrSXZGV2plRDdHNGxXNVNjSmNCeVZoRWsyd1I1OVNGSk9RT0EzQis4QjdQb2VrMnVoYUxhYVZaSUZndFl4R3ZBQk9PckhBQUxIcVRqa2ttZ0RRb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUN1WStJbXNmMkg4UGRjdmxrbmprVzFhS09TQTRkSkpNUm93T1JqRE1EblBHT0s2ZXZCUDJpOWJYZm91aHJQa2Z2THllRFoySHlSdHVJLzY3REFQMUgzYUFJdjJlL0NzTXIzM2ltWlVjeE9iTzBYQWJZY0JuZmtjSERLQVFRY0Z3UnlLK2dLd1BCR2ludzk0STBiU25nTUUwRnFubnhsOTIyVmh1azVCSSsrVzZISHB4Vy9RQVVVVkZjWEVWcmJ5VHp1c2NNYWxuZDJDcWlnWkpKUFFEMW9BWmUzdHJwOW5KZFhsMURhMjZZM1RUdUVSY25BeVNRT3BBcjVxMXJYTC80d2VOb3JTR2FUVDlGaFV1Uk83R0szaWozRnA1UUcyaDhFak9RT1ZYZC9FYkhqVHhMcS93QVdQRXNPaCtIOU5sa3RiVnBaSVZqa0lFNEJ3SjMzYkFueWdBQnVSdkl5U3dGZFQ0OHVkSStHSHcxWHdubzhzWTFQVlZ4TnRZN21VcUZsbUtuZHREQmRvQUkrOGR2M1RRQjU1WjJVZnhHK0lWcm8yajJUNmJvU1NBcmJSNEJoZ1ZWRWtqRUtmM3JoUjh6WkpPeFN4QVUxOVRXRmpiNlpwOXRZMmtmbDIxdEVzTVNiaTIxRkFDako1T0FCeWE4NCtCL2hrYU40TFRWSFNSYnJWbjgyVHpGS2tSS1dFZlU4ZzhzRzR5SkIxd0RYcUZBQlJSUlFBVVVVVUFGRkZGQUJSUlFUZ1pvQTVMNGwrSkxqd3I0RTFEVTdLNGhodmdFaXRqTGc1ZG1BTzBIN3pCZHpBYy9kNUJBTmVZZkN6K3p2QS93NjFUeHBxcXFzOXl4aHM5N0tES0Y0RWFiUVdVdElIRGUwWWJBQzVxbDhadFFtOFllUE5NOE5hSVB0czFtclJtTzNCeUozUHpxeloyNFZVWDB4bHNucnRxK0pSL3duWGpPdzhGZUVQbDhQYWFWalg3Tjg4S2MvdkxnNXh1STNFWkxIY2VRY3lISUJkK0V1ajNmalh4OWZlTWRhaTN4MnNwZEF3SlF6c01xcTdnZmxqWGtESUs0aUk0cjZGQUE2Q3Nmd3Y0ZXQvREhodXcwZTJZTkhheGJTMk1iM1BMdHlUakxFbkdlTTQ2WXJab0FLS0tLQUNrTEtCa2tENm1na2djRE5lUWZHVDRseTZCQ3VnNkhjeHJxZHdwKzB5eGttUzFqd0NBT3dkZ2VEbklHRGdibElBT1grS3Z4Tms4UTNLK0dQREV0eEpBSmZMbXViVm1KdTJiY25sSUZQenB6anZ2UFRBQUxlcGZEZndERDRFMFZveko1K28zZTFyeVVINWNybmFpZFBsWGMzT01ra25nWVVZdndoK0hNZmhYVFJyRjg3dnE5OUFOeUhLL1o0MnczbGtFQTd1RkpKSEJHQmpCTGVuZ1lBRkFDMFVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFCUjFmVW90STBpOTFHY09ZclNCNTNDQUZpcUtXT0FTQm5BOVJYeDlaemFnbW42bHJSZEpIdTJOb1o1bUxUTTBuN3lSbzI3bmFOam5QM1pnQ0NIcjZMK05sN2Iydnd4MUdHZVRhOTFKRkRDdTNPOXc0a3g3ZkxHNXlmVDgvbmJ3YjRjbjhUK0piTFNvWVpaSUhsVnJsb2lGTVVHUUhiSkdCd2U0NmtER1RpZ0Q2UytFV2tuU2ZoenBwZUF4VFhtNjdrRzdkdURuNUc2a0RNWVRqOCtjMTErcTZuWmFOcGsrbzZqZEpiV2tDN3BKWE9Bb3pqOFNTUUFCeVNRQm1yU2tiVDF4azlhOG4rUEhpQ0swOEsyK2l4WGlMZFhzNlBMYnFBek5BdVRrOGNEekFtRHhuQkE3MEFjajhLTE9meHQ4VGIvQU1TNnNubmZaQ2Jsc3R1UkoyT0kxMnZrNFZkeFhISytXdlBhdmVOWjFCZEkwcTR2MlRlc0s1MkJ0dVNUNjloenlmeHJtZmhYNGRidzM0RHNiZWUzOG04dWQxMWNCdHdiZS9RTUdBSVlJRVVqQTVYdjFycE5lK3lEUU5TZStoYWEwVzFrTTBhOEZrQ2trQTlqanB6UUJtK0NQRWorS05BRjlMR3NjNlN0REtxS1FwSXdRVnlTY2JXWHIzelhTVjUvOEh6Y253VVRQNW5sbTZrOGpmbkd6QzUyNTdidC9Udm52bXZRS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0FKeFh5L2Mzc0h4SCtQMXExazV1dE9lNmk4dEwxVHNNRUtocEZDbk9GYlk1Q2tEbC9tQUpOZStlUGZFTVhoandYcWVvdmVKYVhBdDVFdEhZQWt6bFQ1WUM4N2puMk9BQ1R3RFhrL3dDemhvd0oxdlhXZ3lQa3RJSml3NC9qa1hhRC93QmNUa2oySGVnRDN0UmdVdEZSM0U4VnJieVR6eUpIREdwZDVIWUtxcUJra2s4QUFVQUpjWE1GckJKUGNTcEZERWhra2trYmFxS09TU1R3QUIzTmZQZnhGOGUzUGovVW9mQ2ZoVkpMMnlsZU5zcEc4Y2x4S054STVJSGxnYlNkeWdBcVd6Z0FsL3hIOGNUL0FCQTFhMThLZUdJN21XRVhEeHpCR1FpOFpXd3BVZ2tlV05wWU1XQUkrWWdiUWE5VThDL0QzU3ZCVm4rNlZMblU1RktUMzVRcTBpN2lRTnBadHZCVUhCK2JhQ2FBSnZBbmd1eThGK0hvclNHSlB0MHFxOTdPRHZNc29IWTdSOG9KSVVZSEhKR1N4UGdzYVgveGgrS3N6bzBxV0pjTzZNMnd3V2FNQnhrc0E1QjZBRWIySjRHU1BWZmpkNHYvQU9FZDhLalM0bFlYT3NMSkNzdVJ0U01iZk15Q0Rra01GSCs4VGtFREx2Z2Y0Vmw4UCtEcEwrN2lqVzUxVjFuUmtrTEUyKzM5MEQyQitaMjQvdkRQUEFBUFRnT2hPTSt0TFJXZHFtdmFUb2hpL3RUVTdPeTg3UGwvYVoxajM0NjQzRVp4a1orb29BMGFLS0tBQ2lpcTE5ZjJ1bTJrbDNlM0VOdGJSNDN6VFNCRVhKQUdTZUJ5UVB4RkFGZ2tEclMxODlhcjhadkZmaWpXcmZTL0IybmZaSGxtMnc1VkpaNWNGdXU3S0l1M0JJd2R1MG5kaXZvVUhJQkhTZ0FySDhVYS9iK0dmRFYvckZ3QXlXc1pZSVNSNWprNFZNZ0hHNWlGempqTmJGZUkvdERhekdtazZSb2lsRFBMT2J0OFNqTWFvcFZkeVl5UXhkc0hwbU05YUFQRDVOWHVwdFF2NytRNzd1ODNsN25KallOSVQ1allVZ2ZNQ3lrRUZkcnR4MEkrbS9oVjhQaDRPMFUzR29SMjc2MWRMaVowRzR4SnhpSU5uQndSa2tjRTRISVVHdU0rQjN3L2xoWmZGdXIycnhQcy93Q0pZalBnbEdCRFNNdU9oQnd1VHlDVGo3cHIzVURIYy9pYUFGb29vb0FLS0todWJpTzB0NWJpZVJJb0lrTHlTU050VkZBeVNTZWdBR1NhQU9TK0l2eEJzUEFtakxKS3J5NmhkTEl0bEVxYmxMcXZWeVNBRURGQWNIUHpjRHJqeTc0Uy9EMmJ4TmV5ZU52RXJRM2NGeExNOFVFa1NPdHpJeFpaSGRjWTJoaTJCZ0VubmdENXNLNHVOUytObnhPanQ0amNRNlBDUTZ3dktGTnZhcXloM0hCSG1NY2RtNVpSa3F1UjlMMkZqYjZmcHR0WTJzWml0cmFKWVlvOXhiYWlqQ2pKeVRnQWRhQUxXQjZVbTRBNHFPNG5qdG9Ibm1ramloalV2SkpJd1ZVVURKSko2QWV0ZUErTC9pTnFmeEExbUh3cjRUTnhiMk4zS2JaNXh1emRJMjNMRUJkMGFMdGNubmxTZHdIU2dEdlBHdnhlMGJ3MmJxdzA4blVOWGlMUmxFVStUREp4L3JHNHpqSitWY25LbFR0UE5jVkd2eGE4ZHlXZW9MTytsYWZjS1hnYUs0K3lSS01EcXFreXNHMjVCT2Z2WkdGUEhXZUJmZzVwdmh5NWcxVFZMZzZqcWtXSFZkb0VNTDRISUI1WmxPY01jREJCMmdnR3ZRZFUxWFR0RnMydTlTdW9yYTNYSTN5dGpKd1RoUjFMY0hBR1Nld29BOHMrSDNpSFhkRThiWDNnenhMYzNkOWNPZDBNejNCbEVUS204L01mbUtzdUNQUTQrVUV0ajJLdkdmaGJadzYzNDQ4UWVLNDRtUzJlU1EyM21SOTVXTFpEQTREQlJ5Qi9mNjg4K3pVQUZGRkZBQlJSUlFBVVVWRmNYRVZyQkpQUElrVU1hbDNra1lLcUtPU1NUd0FCUUJMU2JoNjE1SjRrK09WbmE2aStsK0d0TmJXTHJjMEN6YmlJbWw0QytXRkJhVWJpUnh0emdiU2R3TmNuQjhXL0hlbFhrZXRhM283eWFOZEJWaXR6YXRCQXhaY3FZNVNwT1RndHlXQkdjQWNFQUgwUlJWVFM5UWkxYlNyUFVZRWRJYnVCSjQxa0dHQ3VvWVp4M3dhdDBBRkZGRkFCUlJSUUI4L2Z0RTZoRkpyR2lhY3FQNXNGdkxPN25oY1NNb0FCejEvZEhJNDZqMTR0ZnMrZUhpUDdUOFJtVEs0K3dSSUd6bmxaSEo0LzNBQ0R6ODNIUTF3dnhrSC9BQmRqVytuL0FDdzdmOU1JNittUEN1Z3crR1BET242TmJuY2xwRUVNbkk4eGp5ellKT056RW5HZU00b0EyRGtJY0Ruc0JYemg0dU1QeEsrTjl0b2thUGJSMnpOWVN1ekFNNnhOSThqTHdjRWpkdHpub0NldUI3YjQ3MTUvRGZnblY5VWpaa21odHlzRG9vWXJLNTJSbkRjWURzcE9ld1BYcFhsZjdQWGgwTU5UOFJ5eWNqL1FJNGxKQS9oa2NzTWMvd0RMUEdEL0FIc2pwUUI3dGdmalhKZkU2V1NINGQ2dTBVam94UkZKVTRPR2tVRWZRZ2tIMkpycmdNQUQwcmovQUlwZjhrNDFiNlJmK2pVb0FUNFduUHc2MHJqSCt1LzlIUFhZMXgzd3MvNUp6cFgxbS84QVJ6MTJOQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJRZUJtaWc5RFFCNEorMFg0anovWlhocUpRcEgvRXdsZGdQOXVOQXB6L0FOZE04ZjNjSHFLOWI4RmVIUDhBaEZQQjJsNkswdm1TMjBYNzV3MlFaR0pkOXB3UGwzTWNjWnhqUE5mUG5pNjVYeHo4ZTRkUGxnbnViS0cvaTA4d0NQNWhERy83N2xEbmJ1ODF0MmNoVG5qR0I5UWxzSVRrWkhXZ0JTY0hGZUNmRkw0aTNtczZ2SjRJOE5NNm1TYzJsektTRWE0bExiUEpYZGpDYnNoaWV2VDd1ZDI1OFZQaVZjMlVpK0YvRFQrZHFkMW1PVzV0bkR2QVN4VHlrQ2tuemNnK2hYNWNBc1JqWCtGbnd6LzRReUNUVXRRa0w2dmRSZVc4YVA4QXU3ZU1rSFlNY00zeWpMZE9BQnhrc0FYL0FJYi9BQS90UEIra0pjU1JidFp1bzFOMU0rQ1kraDhwY1pBVWR5RDh4R2VnQUhjTjBIUFBibnJUZ01kSzRMNHQrTUY4S2VDWi9zOHdUVWIvQURiMjIxOE9tUjgwZ3dRdzJqb1JuRE1uclFCNDU0aHViLzRxL0Y0YVBCZkxGWkpQSmIyY2hmeklralFFdklnR0EyOElXR2V1Vkc3QUJIMDFiUVJXZHZGYlFSSkZERWdTT09OUXFxbzRBQUdBQVBRVjRsOEdMTFRQQ1hoQzc4WmEzcUZuYnc2aG1LQnBNYmtXTm4zS0QxTE1VSjJLQ1NFVTg5cTNpWDQ1NmhxcjIxajRQc0o0Slp3Rk10eENyeitZV0FDeHFDeW5QVG5KTzdnREhJQjJmeEYrS2RwNE9tR25XTUtYMnJzaFlvemtKYlpIeW1USFVrNE96Z2tjNVg1YytHYUJEZmZFbjRoMkZscnVxWE1qM1RTYjVpMjVrVlZhUXFnUENqZ2dBRGFwUFE5RDFGejhOMThEK0M3dnhKNGxhR1hVa0tMWTZla3FtSlpYQUE4emNwRWpJVHZLQUZTSXprc0dPT1E4QWVJdGI4TmVJRGM2RFlwZTM5ekEwSGtHM2tsTExrT2Rxb1Fjalo3OFpOQUgySFVVMXpEYlcwbHpjU0pEQkVoa2tsa1lLcUtCa2trOEFBY2sxODdSNjM4YTlYYzJDd2F1bjJnRmR6NmZIYkJSZ2svdkdSZHB3T0RrSE9NYzRxeC93b2Z4WHFtcmZhZGI4UVdVZ20vMTl6dmx1SnVGd3Yzd3U3c09XR0IrVkFIYWVLdmpoNGQwZlpEbzRHdFhJbFpKUkd6UnhvRkI1RGxTSHlRTWJjZ2pKeU9NK0srTS9HWGlueGhiV3Mrc0I0ZE9rSmt0SW9yZG83ZG1YQ015ay9mSTVHU1R0TEVER2NWN3ZwSHdYOEY2U3NiUzJNK29UTElKVmx2Sm1icGc3U3E3Vkl5TTRZSEpKem12Si9GTTl4OFV2akF1aldlb2h0UFdWb0xWbXdZNDFSY3l1b1VrTVdLTVFlNDJna0RvQWVpL0Jqd0ZGb21neCtJTGdQOEEyanFVQUtvWEcyR0FrTXVOcElPN0NzYzlPQmdZT2ZWODdWeWUxUjI4TVZyYngyOEVTUlF4SUVTTkZDcWlnWUFBSEFBQTZDdWY4YWVNTEx3Ym9NOS9kdkcwMjBtM3RmTVZYbmJLakNnbk9BV0JKQU9CazQ3RUFoOGUrT2JId05vZjIrNFZKN3AzQ1cxbVgyTk9jamNRY0hBVUhKT01kQjFJcjV3OEdXMnBlTy9pYlpTM3hOOU5KZHJkWHIzQ2wxTVNFRmd3d1FGSUd3REFIekFjQ202cFA0aThkd2FwNHcxaUVTV2VuUmVUNWtTaUJVWjMvZHhvZHAzYlhsREhPVHQ0TEFrRStpZnM2YU1DZFoxeVMzL3VXa0UvbVovMnBWMjUvd0N1SnlSOU85QUh1VnZGRGEyOFZ2YnhKRkJFb2pqampVQlVVREFVQWRBQU1ZcXRiNjVwTjVmVFdOcnFkbFBkdzd2TmdpdUVhU1BhY051VUhJd2VEbm9hNUw0cCtPQjRMOE5mNkhKczFXOURKWi91dDZyZ3J2YzhnRGFEeG5QSlhnZ0d1Qy9aNTBSMnVOVzhRU0s0UlVXeGhZTU5ybkllVEk2Z2pFZU8zSjY5Z0QzbWlrQUFBQTZDbG9BQ2NETmVML3RBK0s0YlRRYmZ3eEJMS0wyOWVPZWRBZzIrUXJOZ0ZqMEpkUVJ0NStRNTRPRDY1cTJwUTZSbzE5cWR3cnREWjI4bHhJc2VDeFZGTEVESkF6Z2V0Zk5YaGF3dS9qRDhVYmpVTlk4K1RTNGlaWjQyYzRpaUJQbDI2a0xqa24vWkxBU05uZHpRQjY5OEgvQlNlRXZDTVU5eEc2YXRxU0pOZGhpUnNBenNUYVFNRlEzUEdkeGJrakZlaEZnQmtuQTk2TUJlZUIycnp6NHcrTVArRVg4SXRiMnR6TkRxbW8vdTdSNFY1VlZLK1lkMzhQeW5HUnpsZ1IwSkFCd3Z4SytKYy9pWFVCNFE4SlRDV0c1bUZ0TmRSc1A5SlppRjhwRGtEWVNjRnY0dVJ3dVMzb1h3L3dEaG5wM2d5eGpubWpndTlaUHp5WGJSNThvNEkyUlo1VmNNUm5ndGs1d01LT2ErQ1BnUzMwL1NJL0Urb1dvL3RHNzNHMERnL3VZU051NERHQXpZUEl6bFN1RHljOWg0eCtJK2hlRHJlZGJpNlNmVUkxekhZd3R1a1pzQWdQZ0h5d1F3T1c3WkkzZEtBT2wxUFU3TFNOT24xRFVKMXQ3UzNVdkpLK2NLQitwSjZBRGtrZ0RrMThvK0pQRStvK05kZmx2THNzcUZpYmUyOHhqSGJyZ0E0QjZaQ2dzUUJrODRIQURmRm54RThRZU1FTnZxVnhFTE5aVm5TMmdnQ0pHNnFWQkRITEhxeDVZOWZZWTlUK0dQdzd0Tk8wNVBFbXZlVWthb3R4YmxwV2pFZXhpeGxmT09NS3BIT01ISjdVQWR2NFMwNnkrSHZnQ01hcGNwYmlKVGMzc3JkRmRzZkx3VGtqNVVHUHZFREF5Y1Z3L2liNDVTcnFNT24rRWRQWFVIZGxWWjVvcFAzckhqWWtRMnNUa2prNDVCQUI2MXp1cjZsclh4aThicnBPbkdTSFFMV1loSlVqZG8wWEJJbWs0SHpzRk8wTmpydDRKWW4yYndsNEgwVHdoYUdMVDdYZk8yNFNYYzREVFNBa0hhV0FHRjRIeWpBNDduSm9BOG91WVBqVnJTelQ3TG0yaHUxUmhGQmNRUWVXb1lzcWo1ZzZINWdEMFlnQU5uR0tQQW54UTFuU2RmaThJK0pJNTcyWnIvQU95ZmFKSmcwc0VoWXJ0WS93RExSZCtBRG5qSnh1K1VWNzV0WDBIclhnUHg3OEpXOXROYStLYmNsSkxtUVd0MkN4TzU5bjd0MUdNZmRqWlNNaitIamtrZ0h2eW5JelMxaCtFdkVVWGl2d3hZNjFGYnZiTGNxeE1Ua0VveXNWWVo3amNwd2UvSFRwVzVRQWg2ZHZ4cjUvOEFpMzRrdWZGdmlXejhJK0czdXJobzJraHVZb21kRmxtRGo1R1JzQWhQTDNiamtBRW5JeG12WnZGdXZRZUcvREYvcVVrMXJITEZESWJkTG1RS3Nzb1FzcWNrWkp4MEhKN1Y4dWVHUEhMZUhkVzFQeEpMWlJYL0FJaHVYekE4NktJWXk3RnBwQ0JnN3o5MWRwQXd6WjdBZ0h2WGhQNFdlRy9CZG45dnZ6RGZYMXZ1bGJVTHBRcVJLQ0dES2hKVk5vUUhlZVFkeHlBY0R5THhkcjJyL0Z6eGhGcG1oYWVseGJXRFRHek1RSU1rUjJobmtkeUFvT3dFWkM0M0JlVGpQQTNtcDNPdDYxSmY2dmV6eVQzRW02NHVBb1p3T2h3dVZIQTRDNUF3QU9BSyt0ZkJQZ3Z3OTRUMDFtMEV2TWw0cU85MjgvbUdkUnVLSGo1Y1ljZ0ZRTWpHYzBBYnVrYVpEbzJrMldtMjdPME5uYnBibzBuTE1xS0FDVDY4VmRvb29BS0tLS0FDb2JxZUcydHBKN2lhT0dDSlM4a3NqQlZSUU1ra25nQWVwcWF1QitNSGlKdkQzdzd2dHNSa2sxRC9BRUJDVnlGOHhXM0U4Zy9jRFk2OGtjRVpvQThZOEphVmErT3ZqWGR5cW4yblNqZjNHb1NmS0FHaUVoS0ZsZnFwWXFwWEdjTWVuVWZVdGVGZnM1UXpMRDRpdVdobDhsM3QwV1ZoOHJNb2tMS0Q2amNEajBZZXRlNm1nRHhyOW9YVjVyYncvcG1rUjcwanZwMmxtY1NGUVVqQStVanVDWkZQUFFvTzVHTzcrSE9neGVIdkFXa1dpVzhrRThsdWx4Y3JLbTJUem5BWjkzQU9RVHQ1NUFVRHRYaHQxZVcveEgrUEZsSlpTaTYwNTdtTFlsNGhLTkRDb1oxQUlPRmJiSVFwQUh6YzRMR3ZwcEFRT2FBSFZ3SHhpdnZzbmdLU0RadUY1Y1JRWnpqWmdtVFB2L3E4ZHV1ZTJEMzllYWZHL2p3WlpmOEFZUmovQVBSY2xBSFMvRDZ3L3M3d0ZvMFBtYjkxdUpzNHhqekQ1bVB3M1k5OFpycHF4dkNQL0ltYUgvMkQ0UDhBMFd0Yk5BQ2Joam5qNjB0ZVJlTVBFVjU4Ti9HMGQrQTl4cG1zYlh1dk9Lc3dLTjh3ajVVamFoRzNQSFBmSEhyRnZORmMyMFU4RWlTeFNJSFI0MkRLeWtaQkJIVWU5QUV0RkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVmorS1BFRnY0WDhOYWhyVnl1Nk8waUxCTWtiM09BaTVBT056RlJuSEdjbmdWc1Y0NyswSnJ6V1BoT3owWkM0YlVyamMveXFWTVVRQks1NUlPOW95TUQrRTg0NElCem43UC9BSWZuMUhYdFU4WTNyQ2ZabTNpa2x4STd6dmhwSDNFN2d3QkFKeHo1cDU0SXJyZml6OFRJTkRzTHJRTklublhYSk5xU3lSZ3A5bFJsVnM3aU9XWld3TnZJeVRrRURQR1cvaTIxK0hud25zTkEwNlZIMS9WcmMzazhzRHZpMldZWlZ5ZUNKUEsyQUt1TUVidlRmMEh3aStGb3MxaDhTK0liWi90dTRtMHNwNG1Rd0ZXSUVqcVFNdnhsZU1EaHVTUmdBcy9DUDRkUzI3eCtOTmNtZVhVYnRUTmFvWDNFTElPWlpHL2lkZ3g0N0E4OC9kOWlvd0IwRkZBR1I0bDhSV25oWFFibldMNk9WN1czMmJ4RHRMbmM0UVlCSUhWdld2bDM0bitPSXZIUGlpSzVzNHJ1UFQ3V0FReFJUa2ZlSkpkOW9PRkp5bzZuSVFFK2c5WC9BR2dkZnU5TzBEVDlKZ1pCYjZpMGhuQlVFdjVaaktxTTlCbHNudjhBS08yYXlmMmZmQ0RwOXE4VlhzUnhnMnRsdlhIL0FGMGNBcjlGREEvODlBYUFPZThQL0R6eHQ0NlRUSmRXdTU3WFJVdFFMV2E1WVBzUlZWRkNRaGg5NEtwejh1NVJ1eVNSbjNudzc0TDBMd3Rhd3hhVllRUnl4eEdJM0xScVpwQVRrN254azVJQngwNEdBQUFCMEdLYTV3UGIxb0E4Ry9hQjFHYTcxalEvRDFxTGw1dHJYRFJJQ3l5RjJDUjRWVHk0S3YxSEcvZy9NYXgvSC9oRzcrSGErR2ZFV2p5SmFYTWR2RGEzVXRvZmtGeWtlQzR6OTRPQTJSc3dkcDNaTDFTOE4zWitJbngzZzFieUo0N1kzWDJ3ZVVuTWNjS2Z1dCtOd0dTa1liM1lnRVpGZWtmSDJTQmZBTnR2REZ2N1JpRVJSOW9WdGtuM2hna2phRHdNYzRPZU1FQTlJMFRXYlB4Qm8xbnF0aSs2MnU0VmxUSkJLNTZxMkNRR0J5Q004RUVkcTBLNEw0TUJ2K0ZVNktTT29uSVB0NThtSzcyZ0RoL2k3cnE2RjhOOVRPWS9Pdmwrd3hMSXBJWXlBaGh4ME96ZVJuaklIMHJsZmdKNFkvczd3OU40am5rZ2xrMUllWEJpUE1rVVNPeXNDMyswd0J3UDdpbm5vdkkvSEx4RGM2MTR5dGZDdHJITTZXT3dtQlZZbWVlUlFSaFZKM1lWbEM4QnNzL3FLN0h4RjQ1cy9oVDRKMHZ3L1lwWXplSUliV09ONFlkclJSU0FSbDJsQVpXRzhNektjWllqSjcwQWR0NDQ4YjZYNEkwVTM5OGQ5dzVaTFcxVmdIbmZIUWRjS01nbHUzSEJKQVBnSGhYd3g0aStNdmlaOVUxdTltTmhEdGp1YjNhRjRISWlpVURhR09jOU1ESlk1SkFiUzhLL0R2eFA4VGIxdGI4Vlg5OUJaY0ZKN2hUNWx3ckhkaUpUZ0ltR1lnNDJnc0FBUmtENk5zN0cxMDZ6anRiRzBndG9JODdJb0l4R2k1Skp3QndPU1QrTkFIalB4dHQ5SjhLL0Q3VGZEK2t4SllyZDNnYzI4S2tDZU9OQ0daeVB2a0V4Y3NTU1FEempqcC9BUXMvQkh3YnROUzFIeWtqVzFmVUoyaTI3cFRKbGtHVHQzU0ZXUkFEM3d1Y0FWNVg0N21iNG1mR1NIUkxDRjdkb0gvczFuazJzVDVUeU5KSmpJR0FDNUFEWklYc1d4VnZ4L3dDSTcvNG9lTXJmdzE0ZnQzbHNMTzRhTVNJelNJN2xnaG5jcGtDTlNlRGc0R1RuNXRvQU9JOFc2N3Ezakc4dnZFRjZjMjBjcTJxQXNuN2xYTXJ4UmpBQmJBV1Q1c1pPT2NIZys4ZkFXd2xzL2h5SjVDaFcrdTVMaVBhVGtLQXNlR3ozekdlbWVDSzVuNHArRVl2Q3Z3WDAzUzdCSkowdGRTU1c2dVBLQUxNeVNneVBnY0RjeXFNOUJ0R1R4WGEvQlM0aG0rRldsUnh6SThrTHpwS3FzQ1VZek8yR0hZN1dVNFBZZzk2QVBRYVFuRlV0UjFuUzlKRVoxTFVyU3o4elBsL2FKMWozNHhuR1R6akkvT3VESGl2Vi9ITjdIYStHbzU3RFRzWXVMMjRoRzVTUHZLcEJLNXd5RVl3MmNjZ0FtZ0NoOGVmRU5uWWVDRG94dzk5cVVpYkV5UXlSbzZ1WDZIdUZVRGpPNDR6ZzFlK0NYaGg5QzhBdzNWeWtZdWRUZjdXVDVhaGhFUVBMVXNDY2pIempwamVSajE0SDQ4K0g0ZEYwcncwTEdCekdqWEtTM0xKeXpOc1pRN2dBWitWc0E5bFBvYTlaK0htdTZQZWVEdERzTFRWYkdlOGcwdTM4NjNpdVVlU0xiR2luY29KSXdjQTU3MEFkZ1Jtdm5ENHplRGZGRjc0N3VOVHR0UHZkUnNicUZGdHpiSTB3aENJb0tFQVpUNXR6ZWgzRWc1M0N2ZXJ2eE5vTmpkdGFYZXVhYmIzS1kzUXpYYUk0eU1qS2s1R1J6WEQ2bjhiUENscGtXYTNlb1NHTGVqUnhlWEh2T2NLUytDT2c1Q25nOStsQUhuVmxvWHhqMXhMR1ZYMURUclRZdHZHaTNDMkN3eHF4R1doUXF3QTUvaEp4akdSZ1ZXMVQ0ZmFMNGQxVCt4VTFHWFc5WmxkSVlZZklOdkZiczQrVXUyVHVKM0lRQXdBd1MyUjhwN0dPYng1OFRaWGoydG9taHVxc2ZrWkZrallzQmh2dlNrb2VRTUljRDd2RmVnZUdQQU9oK0ZkN1drTDNFN05rWEYwRmVSQmpHMVNBQUJna0hISnp6N0FIejc0MjhMNjU0UDFQU05ZMUcxaXViWmlzZ2hNSU50QzRrTG0zS3Fkb1UvZUlBVUhjMk00SnJwZmlWOFVUNHN0OVAwUHdzOXlJYnRWYTRNWWRaWGtjTW4yY29QdmNIa0RjR0pYQjQ1OXY4VGVIN1R4UDRmdXRGdlduUzF1UXZtRzNZSzR3NGNZSkJIVmZUdWE4OCtHL3dmazhJK0paOVcxYTVodkh0OHJwelFzeTRCM0t6dWhIREZTQUFHSUc1dXB3UUFkTjhNdkJTZURQQ2NWdkxodFJ1Y1RYYkZWeWo0LzFZSzlRdkk2bmtzUmpPQjJ0QUFBd0Jpa2J0UUF0YzM0NDBHMzhVZURkVDAxclNPN3VUQTcyaUZnQ2s0VnZMWU1mdW5QR2VtQ1FlQ1JYQS9FZjR6TG9jMTVvdmg0R1RWb0pmS2x1SFJYaGpHdzUySGRuekZZcU1NdUFRd0lPT2VMaCtGWHhGOFcyVUY1ck9vQ1BZTjBFT3JYa2p5SXJBRWtLQTIzUEdRY0hJNUZBRVh3dytLRWZnL1F0VnNkVU4xZHh4b3NtbTIwWStVUHVPNU4zVkFTUWVoSHl1UmtuRFdkYitPZmlmV3JxSzE4TzJVV21zenFGUkZGMU5LNXlBcTVYR0NTdUJ0em52emlzUHh4OE1MendGTmFYZy80bkduRTc1WkJBNktoVmxHeVRZZmxEYmdBUXdKK1lEQkF6NzU4TXRaMGpYZkIwTjdwTmphMlRGOXQ3RGEyd2hRWElWZDVBSFVIZ2c1SnhnSGtFQUE4bjA3NFcrT3ZIZHo5dThZYXJjMlVDcVpvRGN0NXpaa3dXVllndzhvWUhJTzNHRkczcmp6YVh3VjRtdDlhdDlIbTBTOGp2cm1ab29JekdRSldHTnhSajhyS001TEE3UU9jNHI3VHdNNXh6U2JWeUR0R1I3VUFlRC9FWDRTMm1pZkRTeW0wcGZQdnRISmE2bkVRVjdtTmo4N01GVWs3VGdqSndxaHNrOTluNGEvRlh3L0I0STAzVHRhMU40ZFF0RU1HMTdkanVqVS9JVktBZ2dMdFhubktucmtFK3QzTUVOMWJ5UVhFS1RReXFVa2prVU1yS1JnZ2c4RUVFZ2l1VG0rRm5nbTR1bnVXMENCSGNna1F2SkVvSTlFVmdvL0FkZWFBTmZTdkZtaTYzT0lkT3ZQdEVoWGRoSW53QjZrbFFCMUg1aXRxcTlwcDlsWVJlVloybHZiUjd0MnlHTUlNNHhuQUhYRldLQUNpaWlnQXI1My9hRzFhN2JYOUwwWHpDdG5GYWk3MmdrYjVIZDBKWVp3ZG9RWU9PTnpjODE5RVY1NTQ2K0UrbitPZFp0TlV1TlF1YlNlRlVoa1dOVlpYaFZtWWdaNVZ5Vys5a2dZKzZhQUUrQ2Vud1dud3VzSllsS1NYY3MwMDdaUHpPSkdqeU05UGxSUng2WjZtdW44WjZtK2plRGRZMUdLNFMybnQ3T1Y0SlhBd3N1dzdPdkdkMkJnOWM0NzFvNlJwME9qNk5ZNlpibHpCWjI4ZHZHWkNDeFZGQ2pKR09jRDByeXI5b1hWRmc4RzJHbHJjT2sxNWViMmpVc0JKSEdqRnQzWWdNMFJ3ZStEMnlBREUvWjAwNVhuMXpWcGJhUXVxdzIwRTVEQmNIY3pvT3hQRVpQVWpqMTU5OHJpUGhQb3gwWDRiYVBHNlFyUGNSbTdsZUpjYi9BRENYWGNjRExCQ2lrLzdPT2dGZFJxV3Q2Vm8vbC8ybHFkbFplYnU4djdUY0xGdnhqT054R2NaR2ZyUUJmcnpQNDQvOGlWWmNnZjhBRXhUci93QmM1YXl0WS9hQTBPS0M2WFJySzh1cnRReXdQTWdTQnpuRzRuZHUyNDV4dEJQQU8zcU9EMXo0eTZ0NGw4TVhPa2FocGxrcHVOdjc2QXNtMEIwWmNCaTM5MXdlZWQ0NmJUdUFQb0x3YzI3d1ZvUjQvd0NRZmJqZy93RFROYTI2NFA0TzNNTno4Tk5NRUxveGphWkhDa0hZM211MkQ2SERBL1FpdThvQTQ3NG1lSEkvRWZnZTlnMk85M2JLYnEwRWFsbU1xS1R0VlFSa3N1NWNjNDNad2NWelh3TDFuVTlROExYVmplcFBKYldNaUphWExuTzVDUDhBVmpnWjJZSFBvNEdBQUs5V0lCR0RSakZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUl6YlZ6WHlKOFhOZWs4US9FdlV6bGhGWlA5aGlEcUFVRVdRK01kUVpESXdKNXdSMDZEM3I0c2VQN0x3ajRhdUxPTzRjNnpmUVBIYXhRdnRlTGNDdm1ramxRcDVIY2tZSFFrZWIvQUFYK0dVZXFHSHhWckVOdkxwM3pwYTJraXJJSmo4eU03Z2dqQU9RQjFKR2VBQnVBTkQ0U2ZEbVcvdWs4WGE3Wm9rTE1zOWhBcStVZk1EaHhNRlFnQk1naFZ4Z2c1d0JndDcwT2xGRkFCU0U0cGE1RDRsK0pyZnd6NEYxRzVlNGxodWJpSjdhemFISWZ6MlJncEJIM2NZSnprZE9PY0NnRHhUNHdYSThaZkZLejB2dytyMzExREI5aGVKSTJCRTZ5eUYxTzdBd0J6dSs2T1RuQXlQb0h3cm9NSGhqd3hwK2kyeDNSMnNJVXZnanpISnk3NEpPTnpGbXhuak9LOE4rQlBoYWZXUEVWMTR5dnJpVnpaeXVrVGtnbTRuZFQ1aFk1SjRWd2VuSmNIUEJCK2k2QUNzN1h0VEdqYUJxR3BtTHp2c2x0TGNlVnYyK1pzVXR0ejJ6aXRHcVdyYWREckdrWHVtWEJrV0c4dDVMZVJveUF5cTZsU1JualBQb2FBUG5qNEVTV0drM3ZpSHhKcVdvUjIxcHA5b2tNcGRUajk0MjRIUHFQS3dBQVNTM0hiTkRWTlIxTDQyZkVhenRMRld0Tk9qVXJDSkM3K1JFcHkwcnFEZ094d093enNVdC9FZFAvQUlaMThSRFVQTFhXTk0rd0dYQmx6SjVnanoxMmJjYnNjN2QrTThaNzE3VDRIOEVhYjRIMFQ3RFpqemJpVWhycTdkUUhuY2QvWlJrNFhQR1QzSkpBTjZ3c2JmVExHM3NyU1B5N2EzaVdHSk1rN1VVQUFaUEo0SGVyTkZGQUh5ZDhRdFA4VjNmeFkxaVNEU3J6KzBGbEZ6Yi9BR0dPUjI4aENGaW1VcmtqaFYrWVl3MlJ3UVJYWitCUGdMdFpML3hpU1Z5eWpUSTMrZ1Zua1J2Yy9LdnQ4M1ZhOSt3UFNqQUhhZ0JBTVZpK01wNWJYd1JyOXhCSzhNMFduWER4eVJ0dFpHRWJFRUhzUWNjMXQxaWVML0RjWGk3d3JmNkZOY1NXeTNTQUNhTVpLTXJCbE9PNDNLTWpqSXlNanJRQjhlYVBkVFJSM1ZyWldyU1gxOHEya1RSbjVsVm1HNVVVREpaK0V6bkcxblhCM2NmUnZ3ZytIRGVFckdUVmRWaWROY3VWYUpvaTZsWUl0L0NqYXhERTdWT2UzQUdNSEo4TlBoSEg0TG4vQUxYMUc0anVkWTh0NDBTTERRd3FjWUtrcUczWUJHN2poaU1kejZqaWdERDhYZUdvdkZ2aGUrME9lNGUzUzZWUUpVWEpSbFlPcHdlbzNLTWpqSTR5T3RmUDBmaGI0ci9EZDVSb3EzY2xxekFmNkJpNWlrWmdDVzhvZ2tIQ2dGeWdPUmpPRHo5TzBnQUhRQVVBZUQrRC9ncHF0M2VycW5pKzc4dmRLWkpiV09VdkpPZHpidk1rQndDVGc1QllrRThnOVBjYlN5Z3NiU0MxdGwyUVFSckZHbVNkcXFNQVpQUFFDckdCNlVVQVkzaVR3dnBmaXpSWnRLMWVEenJlVDVsSXdIaWNkSFE5bUdmeEdRY2drSHg2L3dEMmN4SDlwZXc4VEFBNzJnaXVMUURvRHNWblZ2b0N3WDFJSGF2ZXFLQVBHdEYvWi8wNnp2bGsxVFc1NzYzVWgvSmhnOGplUXdPR2JleDJrWkJBd2VlQ08vb1doK0EvRFBoMjZOMXBta3d3M0pHQkt4YVJsNElPMHVTVnlDUWNZejN6WFIwVUFJQmpwakZMUlJRQVVVVVVBRkl5aGhnZ0g2MHRGQUhoSHhCK0VXdXY0bm04UStFNVhsbHVyZ3pQYnJMNVVrRDRERjBkbXdjdnVQVWJTVkFCR1NNWmRjK05WbkE4Q3c2cTYyYkNGbU5oSE16ZmV4aGloTW4zZVc1SFE1K1pTZnBDaWdENW1Id3UrSlBpYlVMT0R4QTl3dHNwSU54ZVg2M0FnQndXS2dPeHljQWNkVGpKQTVyM2Z3VjRSc3ZCWGg1TktzbmVYTG1XZVp1UE5sSUFZZ2Z3akFBQTdBRGtuSlBRN1JuT0JuMXBhQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUs4eStNM2dQVVBHT2gyVStsSVo5UXNaR3hBWFZBOGJnQnNidU53S29lU0JnTjN4WHB0RkFIekpMNEwrTWQzYnlXMDl4cThzTXFtT1NPVFdsWU1wR0NDREx5TUhHRDYxcDZMK3p6cWx4cGtjMnE2NURZWFRZUGtSVy9uN0FRRGd0dVVCZ1NRUXVSeHdUbXZvakFIYWpBOUtBT04wRDRXK0VmRDA5dmRXbWtvOTVDaXFMaTVjeXNXR0R2d1R0VnNqT1ZBeHpqQXJyWjdhSzVna2duUlpJcFZLUEc0eXJLZW9JOTZsb29BcldOaGFhYmFwYTJOdEJhMnlaMlF3UmhFWEp5Y0tPQmtrbjhhczBVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVnpYalR4dHBuZ25TUHRsODIrZVRLMnRxcCtlZHZiMFVaR1dQQXlPcElCcytLL0U5bDRUOFBYR3JYcnB0alUrVEd6YlRQSmc3WTF3Q2NuSFhCd01rOEFrZktYamp4WHFmalBWQnJsN2FtQ0p5MXZheHhxVEdpb2R4WGRnYm1HOEVuL2JCd0JnQUFwTzJ0L0VIeGxGSEpNYnJWTlJsamlNaFRhRGdCZHhDTHdxcU1rZ2NBRTE5ZytHOUVnOFBlRzlPMGlEeXlsbkFrUmVPSVJpUmdQbWZhT2hac3NldkpQSnJ5UDluM3djOXJZeitMcmlTUlpMeFh0cmFJYmRyUmhsTFNIdmt1aFVBNCs2VHprVjdpTTQ1NjBBRkZGRkFCWHpIOFp2R0V2aXp4VGJhRHBUcGQ2ZGFsUEpObktaaGRUU0JlUUY0SkdTZ0F5UWQzUE9CN3Y0KzhSeStFL0JXcDYxQkFrODl2R29pamtZaFN6dXFBbkhKd1dCd01aeGpJem12RXZnWjRDdU5TMXFMeFRxRnJ0MDYxeTFyNWdINzZiT053QkhLcjh4M2NZY0xnbkRDZ0QyN3dQNFR0UEIvaGUxMHlDSkVtTWFQZU1rak9zayt4VmR3VzV3ZHZBd0I3Q3VrcEJuSE5MUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGVnIrK3RkTnRKTHU5dW9MVzNUYUdtbmRVUmNrQVpKSUE1SUZXVHgyelh6NThidkdVMnM2dkI0UTBhZDVvWTIyM2NWc1N4dUxnc0FrV0FNc1ZPTWdFamN3QkdWRkFITCtQZkdVdnhHOFJwSmJKY1E2SHA4SmtHNk5Ga2hqSVh6WGJMaFdZa0FLdTRaT3dERE56WDhNZUdaUGlQNDFnc0xTTzZoOE82Y3BpV2NJb2todHd6TXU0azQ4MTJaajNBWm1LcnRYQVpyOXpid3gybmdYd2pPYjhTM1FqdnIySlJDdXAzQmZFU2NzZmtUSUErWUlXSllEb3grZ3ZocDRKaDhGK0VyYTJlM2pUVTdoUkxmU0JSdWFUcUVKQklJUUhhTWNIazlXT1FEckxHeHR0TjArMnNiU1B5N2EyaVdHSk54YmFpZ0JSazhuZ0RyVmlpaWdBb29vb0FRZ0hyU0tnWHBucVQxcDFGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQUZGRkZBQlJSUlFBVVVVVUFGRkZGQUJSUlJRQVVVVVVBRkZGRkFCUlJSUUFVVVVVQWN2NC84QUVpZUZmQk9wNm41NWl1ZkxNVm9SdExHZGdRbUZiZzRQekVjOEt4d2NZcjVMZzFlZTBFK3BwcU00MWlhVnRraVNTaWFMUEx6R1JXSExaS1krYklaODdTRkxkNThldkVFK29lT3pwTGZKYmFYR3FSaklJWjVGVjJicGtjRkJqSkh5NUhVMXBmQ1g0U2YybTBQaVR4SkJpdzRlMHM1Ri93Q1BqUElkeC9jOUFmdmRUOHYzd0RxUGdoOE9wTkd0bjhTNjNaN05SbjNKYXd6d3NzdHNnTEJtTzdHR2Y2ZmQ3L09SWHMxSUFCMHBhQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0E0L1gvaG40YThSK0pMWFhyK3kzWGtHTjZyZ1IzT1B1K2FwQjNZd1BxQUFkeWpGZGNpN1Z4Z1U2aWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0Fvb29vQUtLS0tBQ2lpaWdBb29vb0FLS0tLQUNpaWlnQW9vb29BS0tLS0FDaWlpZ0QvMlE9PQ==</SignID>
        <SignPass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <SignVertreter/>
        <FpDG3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpFinger1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpQualitaet1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpCaptureDevice1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpWSQ1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpFinger2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpQualitaet2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpCaptureDevice2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
        <FpWSQ2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
      </Person>
    </PassAntrag>Regards,
    Martin

  • How to improve performance of a query that is based on an xmltype table

    Dear Friends,
    I have a query that is pulling records from an xmltype table with 9000 rows and it is running very slow.
    I am using XMLTABLE command to retreive the rows. It is taking upto 30 minutes to finish.
    Would you be able to suggest how I can make it faster. Thanks.
    Below is the query.....
    INSERT INTO temp_sap_po_receipt_history_t
    (po_number, po_line_number, doc_year,
    material_doc, material_doc_item, quantity, sap_ref_doc_no_long,
    reference_doc, movement_type_code,
    sap_ref_doc_no, posting_date, entry_date, entry_time, hist_type)
    SELECT :pin_po_number po_number,
    b.po_line_number, b.doc_year,
    b.material_doc, b.material_doc_item, b.quantity, b.sap_ref_doc_no_long,
    b.reference_doc, b.movement_type_code,
    b.sap_ref_doc_no, to_date(b.posting_date,'rrrr-mm-dd'),
    to_date(b.entry_date,'rrrr-mm-dd'), b.entry_time, b.hist_type
    FROM temp_xml t,
    XMLTABLE(XMLNAMESPACES('urn:sap-com:document:sap:rfc:functions' AS "n0"),
    '/n0:BAPI_PO_GETDETAIL1Response/POHISTORY/item'
    PASSING t.object_value
    COLUMNS PO_LINE_NUMBER VARCHAR2(20) PATH 'PO_ITEM',
    DOC_YEAR varchar2(4) PATH 'DOC_YEAR',
    MATERIAL_DOC varchar2(30) PATH 'MAT_DOC',
    MATERIAL_DOC_ITEM VARCHAR2(10) PATH 'MATDOC_ITEM',
    QUANTITY NUMBER(20,6) PATH 'QUANTITY',
    SAP_REF_DOC_NO_LONG VARCHAR2(20) PATH 'REF_DOC_NO_LONG',
    REFERENCE_DOC VARCHAR2(20) PATH 'REF_DOC',
    MOVEMENT_TYPE_CODE VARCHAR2(4) PATH 'MOVE_TYPE',
    SAP_REF_DOC_NO VARCHAR2(20) PATH 'REF_DOC_NO',
    POSTING_DATE VARCHAR2(10) PATH 'PSTNG_DATE',
    ENTRY_DATE VARCHAR2(10) PATH 'ENTRY_DATE',
    ENTRY_TIME VARCHAR2(8) PATH 'ENTRY_TIME',
    HIST_TYPE VARCHAR2(5) PATH 'HIST_TYPE') b;

    Based on response from mdrake on this thread:
    Re: XML file processing into oracle
    For large XML's, you can speed up the processing of XMLTABLE by using a registered schema...
    declare
      SCHEMAURL VARCHAR2(256) := 'http://xmlns.example.org/xsd/testcase.xsd';
      XMLSCHEMA VARCHAR2(4000) := '<?xml version="1.0" encoding="UTF-8"?>
         <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xdb:storeVarrayAsTable="true">
            <xs:element name="cust_order" type="cust_orderType" xdb:defaultTable="CUST_ORDER_TBL"/>
            <xs:complexType name="groupType" xdb:maintainDOM="false">
                    <xs:sequence>
                            <xs:element name="item" type="itemType" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="id" type="xs:byte" use="required"/>
            </xs:complexType>
            <xs:complexType name="itemType" xdb:maintainDOM="false">
                    <xs:simpleContent>
                            <xs:extension base="xs:string">
                                    <xs:attribute name="id" type="xs:short" use="required"/>
                                    <xs:attribute name="name" type="xs:string" use="required"/>
                            </xs:extension>
                    </xs:simpleContent>
            </xs:complexType>
            <xs:complexType name="cust_orderType" xdb:maintainDOM="false">
                    <xs:sequence>
                            <xs:element name="group" type="groupType" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="cust_id" type="xs:short" use="required"/>
            </xs:complexType>
         </xs:schema>';
      INSTANCE  CLOB :=
    '<cust_order cust_id="12345">
      <group id="1">
        <item id="1" name="Standard Mouse">100</item>
        <item id="2" name="Keyboard">100</item>
        <item id="3" name="Memory Module 2Gb">200</item>
        <item id="4" name="Processor 3Ghz">25</item>
        <item id="5" name="Processor 2.4Ghz">75</item>
      </group>
      <group id="2">
        <item id="1" name="Graphics Tablet">15</item>
        <item id="2" name="Keyboard">15</item>
        <item id="3" name="Memory Module 4Gb">15</item>
        <item id="4" name="Processor Quad Core 2.8Ghz">15</item>
      </group>
      <group id="3">
        <item id="1" name="Optical Mouse">5</item>
        <item id="2" name="Ergo Keyboard">5</item>
        <item id="3" name="Memory Module 2Gb">10</item>
        <item id="4" name="Processor Dual Core 2.4Ghz">5</item>
        <item id="5" name="Dual Output Graphics Card">5</item>
        <item id="6" name="28inch LED Monitor">10</item>
        <item id="7" name="Webcam">5</item>
        <item id="8" name="A3 1200dpi Laser Printer">2</item>
      </group>
    </cust_order>';                
    begin
      dbms_xmlschema.registerSchema
         schemaurl       => SCHEMAURL
        ,schemadoc       => XMLSCHEMA
        ,local           => TRUE
        ,genTypes        => TRUE
        ,genBean         => FALSE
        ,genTables       => TRUE
        ,ENABLEHIERARCHY => DBMS_XMLSCHEMA.ENABLE_HIERARCHY_NONE
      execute immediate 'insert into CUST_ORDER_TBL values (XMLTYPE(:INSTANCE))' using INSTANCE;
    end;
    SQL> desc CUST_ORDER_TBL
    Name                                                                                                                                    Null?    Type
    TABLE of SYS.XMLTYPE(XMLSchema "http://xmlns.example.org/xsd/testcase.xsd" Element "cust_order") STORAGE Object-relational TYPE "cust_orderType222_T"
    SQL> set autotrace on explain
    SQL> set pages 60 lines 164 heading on
    SQL> col cust_id format a8
    SQL> select extract(object_value,'/cust_order/@cust_id') as cust_id
      2        ,grp.id as group_id, itm.id as item_id, itm.inm as item_name, itm.qty as item_qty
      3  from   CUST_ORDER_TBL
      4        ,XMLTABLE('/cust_order/group'
      5                  passing object_value
      6                  columns id   number       path '@id'
      7                         ,item xmltype      path 'item'
      8                 ) grp
      9        ,XMLTABLE('/item'
    10                  passing grp.item
    11                  columns id   number       path '@id'
    12                         ,inm  varchar2(30) path '@name'
    13                         ,qty  number       path '.'
    14                 ) itm
    15  /
    CUST_ID    GROUP_ID    ITEM_ID ITEM_NAME                        ITEM_QTY
    12345             1          1 Standard Mouse                        100
    12345             1          2 Keyboard                              100
    12345             1          3 Memory Module 2Gb                     200
    12345             1          4 Processor 3Ghz                         25
    12345             1          5 Processor 2.4Ghz                       75
    12345             2          1 Graphics Tablet                        15
    12345             2          2 Keyboard                               15
    12345             2          3 Memory Module 4Gb                      15
    12345             2          4 Processor Quad Core 2.8Ghz             15
    12345             3          1 Optical Mouse                           5
    12345             3          2 Ergo Keyboard                           5
    12345             3          3 Memory Module 2Gb                      10
    12345             3          4 Processor Dual Core 2.4Ghz              5
    12345             3          5 Dual Output Graphics Card               5
    12345             3          6 28inch LED Monitor                     10
    12345             3          7 Webcam                                  5
    12345             3          8 A3 1200dpi Laser Printer                2
    17 rows selected.Need at least 10.2.0.3 for performance i.e. to avoid COLLECTION ITERATOR PICKLER FETCH in execution plan...
    On 10.2.0.1:
    Execution Plan
    Plan hash value: 3741473841
    | Id  | Operation                          | Name                   | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                   |                        | 24504 |    89M|   873   (1)| 00:00:11 |
    |   1 |  NESTED LOOPS                      |                        | 24504 |    89M|   873   (1)| 00:00:11 |
    |   2 |   NESTED LOOPS                     |                        |     3 | 11460 |   805   (1)| 00:00:10 |
    |   3 |    TABLE ACCESS FULL               | CUST_ORDER_TBL         |     1 |  3777 |     3   (0)| 00:00:01 |
    |*  4 |    INDEX RANGE SCAN                | SYS_IOT_TOP_774117     |     3 |   129 |     1   (0)| 00:00:01 |
    |   5 |   COLLECTION ITERATOR PICKLER FETCH| XMLSEQUENCEFROMXMLTYPE |       |       |            |       |
    Predicate Information (identified by operation id):
       4 - access("NESTED_TABLE_ID"="CUST_ORDER_TBL"."SYS_NC0000900010$")
           filter("SYS_NC_TYPEID$" IS NOT NULL)
    Note
       - dynamic sampling used for this statementOn 10.2.0.3:
    Execution Plan
    Plan hash value: 1048233240
    | Id  | Operation               | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT        |                   |    17 |   132K|   839   (0)| 00:00:11 |
    |   1 |  NESTED LOOPS           |                   |    17 |   132K|   839   (0)| 00:00:11 |
    |   2 |   MERGE JOIN CARTESIAN  |                   |    17 |   131K|   805   (0)| 00:00:10 |
    |   3 |    TABLE ACCESS FULL    | CUST_ORDER_TBL    |     1 |  3781 |     3   (0)| 00:00:01 |
    |   4 |    BUFFER SORT          |                   |    17 | 70839 |   802   (0)| 00:00:10 |
    |*  5 |     INDEX FAST FULL SCAN| SYS_IOT_TOP_56154 |    17 | 70839 |   802   (0)| 00:00:10 |
    |*  6 |   INDEX UNIQUE SCAN     | SYS_IOT_TOP_56152 |     1 |    43 |     2   (0)| 00:00:01 |
    |*  7 |    INDEX RANGE SCAN     | SYS_C006701       |     1 |       |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       5 - filter("SYS_NC_TYPEID$" IS NOT NULL)
       6 - access("SYS_NTpzENS1H/RwSSC7TVzvlqmQ=="."NESTED_TABLE_ID"="SYS_NTnN5b8Q+8Txi9V
                  w5Ysl6x9w=="."SYS_NC0000600007$")
           filter("SYS_NC_TYPEID$" IS NOT NULL AND
                  "NESTED_TABLE_ID"="CUST_ORDER_TBL"."SYS_NC0000900010$")
       7 - access("SYS_NTpzENS1H/RwSSC7TVzvlqmQ=="."NESTED_TABLE_ID"="SYS_NTnN5b8Q+8Txi9V
                  w5Ysl6x9w=="."SYS_NC0000600007$")
    Note
       - dynamic sampling used for this statement----------------------------------------------------------------------------------------------------------
    -- CLEAN UP
    DROP TABLE CUST_ORDER_TBL purge;
    exec dbms_xmlschema.deleteschema('http://xmlns.example.org/xsd/testcase.xsd');

  • Oracle Text in XMLType Table

    I have successfully created (at least I think) oracle text indexes on my XMLType table:
    EXEC ctx_ddl.create_section_group('contract_xmlgroup', 'XML_SECTION_GROUP');
    EXEC CTX_DDL.Add_Zone_Section (group_name => 'contract_xmlgroup', section_name => 'complete_entry', tag => 'complete_entry')
    CREATE INDEX complete_entry ON boss_contracts INDEXTYPE IS ctxsys.context
    parameters('section group contract_xmlgroup');
    however I am unsure how to now search using CONTAINS with this index, I tried this at first:
    SELECT count(*) FROM boss_contracts b
    WHERE CONTAINS(value(b), 'string WITHIN complete_entry') > 0;
    this just gave me the error:
    ERROR at line 1:
    ORA-20000: Oracle Text error:
    DRG-10599: column is not indexed
    any help would be appreciated
    Paul

    It looks like you are wanting to search by sub-directory names or a combination of sub-directory names. By default, Oracle Text views the directory delimiter / as white space, so the individual sub-directories are tokenized. Therefore, you don't need the wildcards or / to do your searches. Please see the example below.
    SCOTT@orcl_11g> create table files_included
      2    (pid       varchar2 (16) not null,
      3       filename  varchar2 (40) not null)
      4  /
    Table created.
    SCOTT@orcl_11g> insert all
      2  into files_included values
      3    ('123456-01', '/usr/bin/ls/a')
      4  into files_included values
      5    ('123456-02', '/usr/bin/ls/b')
      6  into files_included values
      7    ('123456-03', '/usr/x/ls/a')
      8  into files_included values
      9    ('123456-02', '/usr/bin/x/b')
    10  into files_included values
    11    ('654321', '/usr/bin/other')
    12  select * from dual
    13  /
    5 rows created.
    SCOTT@orcl_11g> create index myindex
      2  on files_included (filename)
      3  indextype is ctxsys.context
      4  /
    Index created.
    SCOTT@orcl_11g> select token_text
      2  from   dr$myindex$i
      3  /
    TOKEN_TEXT
    B
    BIN
    LS
    OTHER
    USR
    X
    6 rows selected.
    SCOTT@orcl_11g> select * from files_included
      2  where  contains (filename, 'bin ls') > 0
      3  /
    PID              FILENAME
    123456-01        /usr/bin/ls/a
    123456-02        /usr/bin/ls/b
    SCOTT@orcl_11g> select * from files_included
      2  where  contains (filename, 'bin') > 0
      3  /
    PID              FILENAME
    123456-01        /usr/bin/ls/a
    123456-02        /usr/bin/ls/b
    123456-02        /usr/bin/x/b
    654321           /usr/bin/other
    SCOTT@orcl_11g> select * from files_included
      2  where  contains (filename, 'ls') > 0
      3  /
    PID              FILENAME
    123456-01        /usr/bin/ls/a
    123456-02        /usr/bin/ls/b
    123456-03        /usr/x/ls/a
    SCOTT@orcl_11g>

  • How to Index a XMLTYPE table

    I am using a xmltype table for parsing the xml file and then storing the tag values into someother tables.
    The table syntax
    CREATE GLOBAL TEMPORARY TABLE ATLAS.XML_PROCESS
    XML_DATA XMLTYPE
    ON COMMIT DELETE ROWS;
    At a time i will parse only one xml file. And them the content will be deleted and then i will parse another xml file.
    The parsing of the xml file is taking much CPU time and also it is taking more FETCH time. ( i have seen from the trace file)
    Do i need to create any index on this table?
    Please suggest me how can i imrove the performence.
    Thanks

    Hi
    Why do you use a GTT? Just keep your xml in memory...
    HTH
    Chris

  • Exporting xmltype table data into xml/txt file

    I want to export data stored in oracle as xmltype table into xml format file.
    I want to use alternatives to the method shown below as my xml file is large.
    set long 10000000
    spool c:\\StudentXMLJan08.xml
    SELECT
    XMLElement("Student",
    XMLForest(s.studentid "studentid",
    s.firstname "firstname",
    s.lastname "surname"),
    XMLElement("enrollments",
    (SELECT XMLAGG(
    XMLForest(sc.coursecode "courseid"))
    FROM studentcourse sc
    WHERE sc.studentid = s.studentid
    and sc.is_approved='Y'
    and sc.takenyear='2008'
    and sc.takenterm='1')))
    FROM student s
    where s.statuscode in (select studentstatuscode from studentstatus where studentstatusactive=1)
    order by s.studentid;
    spool off
    please help, thank you

    How's this one for size
    SQL> create or replace view DEPARTMENT_XML of xmltype
      2  with object id
      3  (
      4    'DEPARTMENT'
      5  )
      6  as
      7  select xmlElement
      8         (
      9           "Departments",
    10           (
    11             select xmlAgg
    12                    (
    13                      xmlElement
    14                      (
    15                      "Department",
    16                      xmlAttributes( d.DEPARTMENT_ID as "DepartmentId"),
    17                      xmlElement("Name", d.DEPARTMENT_NAME),
    18                      xmlElement
    19                      (
    20                        "Location",
    21                        xmlForest
    22                        (
    23                           STREET_ADDRESS as "Address", CITY as "City", STATE_PROVINCE as "State",
    24                           POSTAL_CODE as "Zip",COUNTRY_NAME as "Country"
    25                        )
    26                      ),
    27                      xmlElement
    28                      (
    29                        "EmployeeList",
    30                        (
    31                          select xmlAgg
    32                                 (
    33                                   xmlElement
    34                                   (
    35                                     "Employee",
    36                                     xmlAttributes ( e.EMPLOYEE_ID as "employeeNumber" ),
    37                                     xmlForest
    38                                     (
    39                                       e.FIRST_NAME as "FirstName", e.LAST_NAME as "LastName", e.EMAIL as "EmailAddre
    ss",
    40                                       e.PHONE_NUMBER as "Telephone", e.HIRE_DATE as "StartDate", j.JOB_TITLE as "Job
    Title",
    41                                       e.SALARY as "Salary", m.FIRST_NAME || ' ' || m.LAST_NAME as "Manager"
    42                                     ),
    43                                     xmlElement ( "Commission", e.COMMISSION_PCT )
    44                                   )
    45                                 )
    46                            from HR.EMPLOYEES e, HR.EMPLOYEES m, HR.JOBS j
    47                           where e.DEPARTMENT_ID = d.DEPARTMENT_ID
    48                             and j.JOB_ID = e.JOB_ID
    49                             and m.EMPLOYEE_ID = e.MANAGER_ID
    50                        )
    51                      )
    52                    )
    53                  )
    54             from HR.DEPARTMENTS d, HR.COUNTRIES c, HR.LOCATIONS l
    55            where d.LOCATION_ID = l.LOCATION_ID
    56              and l.COUNTRY_ID  = c.COUNTRY_ID
    57           )
    58         )
    59    from dual
    60  /
    View created.
    SQL> create or replace trigger DEPARTMENT_DML
      2  instead of INSERT or UPDATE or DELETE
      3  on DEPARTMENT_XML
      4  begin
      5    null;
      6  end;
      7  /
    Trigger created.
    SQL> declare
      2    cursor getDepartments is
      3      select ref(d) XMLREF
      4        from DEPARTMENT_XML d;
      5    res boolean;
      6    targetFolder varchar2(1024) :=  '/public/Departments';
      7  begin
      8    if dbms_xdb.existsResource(targetFolder) then
      9       dbms_xdb.deleteResource(targetFolder,dbms_xdb.DELETE_RECURSIVE_FORCE);
    10    end if;
    11    res := dbms_xdb.createFolder(targetFolder);
    12    for dept in getDepartments loop
    13      res := DBMS_XDB.createResource(targetFolder || '/Departments.xml', dept.XMLREF);
    14    end loop;
    15  end;
    16  /
    PL/SQL procedure successfully completed.
    SQL> select path
      2    from path_view
      3   where equals_path(RES,'/public/Departments/Departments.xml') = 1
      4  /
    PATH
    /public/Departments/Departments.xml
    SQL> select xdburitype('/public/Departments/Departments.xml').getXML()
      2    from dual
      3  /
    XDBURITYPE('/PUBLIC/DEPARTMENTS/DEPARTMENTS.XML').GETXML()
    <Departments>
      <Department DepartmentId="60">
        <Name>IT</Name>
        <Location
    SQL> quit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    C:\Temp>ftp localhost
    Connected to mdrake-lap.
    220- mdrake-lap
    Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.
    220 mdrake-lap FTP Server (Oracle XML DB/Oracle Database) ready.
    User (mdrake-lap:(none)): SCOTT
    331 pass required for SCOTT
    Password:
    230 SCOTT logged in
    ftp> cd /public/Departments
    250 CWD Command successful
    ftp> ls -l
    200 EPRT Command successful
    150 ASCII Data Connection
    -rw-r--r--   1 SCOTT    oracle         0 NOV 10 20:18 Departments.xml
    226 ASCII Transfer Complete
    ftp: 71 bytes received in 0.01Seconds 7.10Kbytes/sec.
    ftp> get Departments.xml -
    200 EPRT Command successful
    150 ASCII Data Connection
    <Departments><Department DepartmentId="60"><Name>IT</Name><Location><Address>2014 Jabberwocky Rd</Address><City>Southlak
    e</City><State>Texas</State><Zip>26192</Zip><Country>United States of America</Country></Location><EmployeeList><Employe
    e employeeNumber="103"><FirstName>Alexander</FirstName><LastName>Hunold</LastName><EmailAddress>AHUNOLD</EmailAddress><T
    elephone>590.423.4567</Telephone><StartDate>2006-01-03</StartDate><JobTitle>Programmer</JobTitle><Salary>9000</Salary><M
    anager>Lex De Haan</Manager><Commission></Commission></Employee><Employee employeeNumber="105"><FirstName>David</FirstNa
    me><LastName>Austin</LastName><EmailAddress>DAUSTIN</EmailAddress><Telephone>590.423.4569</Telephone><StartDate>2005-06-
    25</StartDate><JobTitle>Programmer</JobTitle><Salary>4800</Salary><Manager>Alexander Hunold</Manager><Commission></Commi
    ssion></Employee><Employee employeeNumber="106"><FirstName>Valli</FirstName><LastName>Pataballa</LastName><EmailAddress>
    VPATABAL</EmailAddress><Telephone>590.423.4560</Telephone><StartDate>2006-02-05</StartDate><JobTitle>Programmer</JobTitl
    e><Salary>4800</Salary><Manager>Alexander Hunold</Manager><Commission></Commission></Employee><Employee employeeNumber="
    107"><FirstName>Diana</FirstName><LastName>Lorentz</LastName><EmailAddress>DLORENTZ</EmailAddress><Telephone>590.423.556
    7</Telephone><StartDate>2007-02-07</StartDate><JobTitle>Programmer</JobTitle><Salary>4200</Salary><Manager>Alexander Hun
    old</Manager><Commission></Commission></Employee><Employee employeeNumber="104"><FirstName>Bruce</FirstName><LastName>Er
    nst</LastName><EmailAddress>BERNST</EmailAddress><Telephone>590.423.4568</Telephone><StartDate>2007-05-21</StartDate><Jo
    bTitle>Programmer</JobTitle><Salary>6000</Salary><Manager>Alexander Hunold</Manager><Commission></Commission></Employee>
    </EmployeeList></Department><Department DepartmentId="50"><Name>Shipping</Name><Location><Address>2011 Interiors Blvd</A
    ddress><City>South San Francisco</City><State>California</State><Zip>99236</Zip><Country>United States of America</Count
    ry></Location><EmployeeList><Employee employeeNumber="120"><FirstName>Matthew</FirstName><LastName>Weiss</LastName><Emai
    lAddress>MWEISS</EmailAddress><Telephone>650.123.1234</Telephone><StartDate>2004-07-18</StartDate><JobTitle>Stock Manage
    r</JobTitle><Salary>8000</Salary><Manager>Steven King</Manager><Commission></Commission></Employee><Employee employeeNum
    ber="122"><FirstName>Payam</FirstName><LastName>Kaufling</LastName><EmailAddress>PKAUFLIN</EmailAddress><Telephone>650.1
    23.3234</Telephone><StartDate>2003-05-01</StartDate><JobTitle>Stock Manager</JobTitle><Salary>7900</Salary><Manager>Stev
    en King</Manager><Commission></Commission></Employee><Employee employeeNumber="121"><FirstName>Adam</FirstName><LastName
    Fripp</LastName><EmailAddress>AFRIPP</EmailAddress><Telephone>650.123.2234</Telephone><StartDate>2005-04-10</StartDate><JobTitle>Stock Manager</JobTitle><Salary>8200</Salary><Manager>Steven King</Manager><Commission></Commission></Employee
    <Employee employeeNumber="124"><FirstName>Kevin</FirstName><LastName>Mourgos</LastName><EmailAddress>KMOURGOS</EmailAddress><Telephone>650.123.5234</Telephone><StartDate>2007-11-16</StartDate><JobTitle>Stock Manager</JobTitle><Salary>5800<
    /Salary><Manager>Steven King</Manager><Commission></Commission></Employee><Employee employeeNumber="123"><FirstName>Shan
    ta</FirstName><LastName>Vollman</LastName><EmailAddress>SVOLLMAN</EmailAddress><Telephone>650.123.4234</Telephone><Start
    Date>2005-10-10</StartDate><JobTitle>Stock Manager</JobTitle><Salary>6500</Salary><Manager>Steven King</Manager><Commiss
    ion></Commission></Employee><Employee employeeNumber="128"><FirstName>Steven</FirstName><LastName>Markle</LastName><Emai
    lAddress>SMARKLE</EmailAddress><Telephone>650.124.1434</Telephone><StartDate>2008-03-08</StartDate><JobTitle>Stock Clerk
    </JobTitle><Salary>2200</Salary><Manager>Matthew Weiss</Manager><Commission></Commission></Employee><Employee employeeNu
    mber="127"><FirstName>James</FirstName><LastName>Landry</LastName><EmailAddress>JLANDRY</EmailAddress><Telephone>650.124
    .1334</Telephone><StartDate>2007-01-14</StartDate><JobTitle>Stock Clerk</JobTitle><Salary>2400</Salary><Manager>Matthew
    Weiss</Manager><Commission></Commission></Employee><Employee employeeNumber="126"><FirstName>Irene</FirstName><LastName>
    Mikkilineni</LastName><EmailAddress>IMIKKILI</EmailAddress><Telephone>650.124.1224</Telephone>
    <StartDate>2002-06-07</St
    artDate><JobTitle>Public Relations Representative</JobTitle><Salary>10000</Salary><Manager>Neena Kochhar</Manager><Commi
    ssion></Commission></Employee></EmployeeList></Department></Departments>226 ASCII Transfer Complete
    ftp: 40392 bytes received in 0.08Seconds 480.86Kbytes/sec.
    ftp>

  • Querying in the xmltype table

    apart from XQuery,
    i know Oracle provided X-Path based search also.
    can anyone direct me what's wrong with the following statement?
    it returns "no rows selected".
    THX~
    e.g.1
    select extract(value(it),'/Cap/@ctitle').getStringVal() as CTITLE
    from ord_xmltype_tbl,
    table (xmlsequence(extract(object_value,'Ordinace/Chapter/Cap'))) it
    where contains (object_value,'Commonwealth INPATH (/Ordinance/Chapter/Cap/Section/Content/English)') > 0;
    e.g.2
    select extract(object_value,'/Ordinance/Chapter/Cap/@ctitle').getStringVal() as CTITLE
    from ord_xmltype_tbl,
    table (xmlsequence(extract(object_value,'/Ordinace/Chapter/Cap'))) it
    where existsnode(object_value,'//English[contains(.,"SHORT TITLE AND APPLICATION")>0]')>0;
    e.g.3
    select extract(value(it),'/Cap/@ctitle').getStringVal() as CTITLE
    from ord_xmltype_tbl,
    table (xmlsequence(extract(object_value,'/Ordinace/Chapter/Cap'))) it
    where existsnode(object_value,'//English[ora:contains(.,"SHORT TITLE AND APPLICATION")>0]', 'xmlns:ora="http://xmlns.oracle.com/xdb"')>0;
    and what index i should create for the xmltype table?
    in order to speed up the search?
    this is the skeleton of the xmltype table
    <Ordinance xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://localhost:8081/public/hkliss/ordinance.xsd">
    <Chapter ctitle="致命意外條例" etitle="FATAL ACCIDENTS ORDINANCE" id="22">
    <Cap ctitle="致命意外條例" etitle="FATAL ACCIDENTS ORDINANCE" id="22">
    <Section ctitle="詳題" etitle="Long title" id="0">
    <VersionDate>1997-06-30</VersionDate>
    <Content>
    <Chinese></Chinese>
    <English></English>
    </Content>
    </Section>
    </Cap>
    <Cap>....</Cap>
    <Cap>....</Cap>
    <Cap>....</Cap>
    <Cap>....</Cap>
    <Cap>....</Cap>
    <Cap>....</Cap>
    </Chapter>
    </Ordinance>
    thx, expert~
    i'm held up in my project right now~~~

    (please read a little from the manuals...you have already spend so much time on asking stuff, that if you would have
    read manuals, you also would understand the things pointed out to you and it would have given you a faster result...)
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/functions051.htm#i1006712
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/functions048.htm#i1006711
    http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/functions052.htm#i1131042
    The optional namespace_string must resolve to a VARCHAR2 value that specifies a default mapping or namespace mapping for prefixes, which Oracle uses when evaluating the XPath expression(s).
    is xmlns:ora="http://xmlns.oracle.com/xdb evaluating your Xpath expression, I don't think so...
    If I take your examples shown here (http://forums.oracle.com/forums/message.jspa?messageID=1765571#1765571) as a starting point...
    the query:
    select extract(value(it),'/Cap/@ctitle').getStringVal() as CTITLE
    from ord_xmltype_tbl,
    table (xmlsequence(extract(object_value,'/Ordinace/Chapter/Cap'))) it
    where existsnode(object_value,'//English[ora:contains(.,"SHORT TITLE AND APPLICATION")>0]', 'xmlns:ora="http://xmlns.oracle.com/xdb"')>0;would resolve in
    select extract(value(it),'/Cap/@ctitle').getStringVal() as CTITLE
    from ord_xmltype_tbl,
    table (xmlsequence(extract(object_value,'/Ordinace/Chapter/Cap', 'xmlns:ora="http://localhost:8081/public/hkliss/ordinance.xsd"'))) it
    where existsnode(object_value,'//English[ora:contains(.,"SHORT TITLE AND APPLICATION")>0]', 'xmlns:ora="http://localhost:8081/public/hkliss/ordinance.xsd"')>0;
    But I would start with a simple "extract" or "existnode" statement, see if I get data output, and then build my SQL statement from there.

Maybe you are looking for

  • Registering multiple ipods using the same apple id

    I just purchased a new nano for my wife. I was about to register her ipod using my apple id and itunes account so we could just use the same account to order music. Am I able to do this? I did not continue just incase registering her nano would "de-r

  • Evga 8800gt issue with my P6N SLI

    I recently purchased a bunch of new parts to build my new computer. MSI P6N SLI 6750 core 2 duo EVGA 8800GT OC G.skill 4GB (2 x 2gb sticks) 430W PSU *yes with enough amps for the card.. 3 12v rails totals 30+amps The problem im having is the card isn

  • CreateListItem Action at work flow not trigger Event reciever

        Hello , I have two Lists (List1 , List2). I have attached Workflow by SharePoint designer to List 1 . I have attached event receiver (Item was added) to list 2 . In the workflow . I use "CreateListItem"  to create new item in list 2. I have test

  • Congrats Adobe Labs

    Just wanted to say congratulations to Adobe/Adobe Labs for the Panels...what a great workflow advantage. I'd be happy as a clam in sand just the way it is because of the efficiency it gives my process. Not to look at a gift horse in the mouth however

  • Would Adobe Creative Suite 6 work on Mountain Lion?

    Hey guys, does anyone have any idea if Adobe Creative Suite 6 Design edition works on Mountain Lion or not?