Querying XML File

Hi,
Based on the logic provided in forum(Please see below), we have developed procedure to read XML file which we receive as CLOB input parameter. This XML file will contain 50 records which need to be read inside the procedure. To read these 50 records it is taking 2 seconds of time.
Now we got requirement to read up to 1500 records which will be supplied by CLOB field as input parameter to the procedure.
But we are facing really a big challenge over here. Initially in testing phase we are trying to read just 100 records for which the time taking from point 1 to point 2(Mentioned below, that is going in to the loop) is around 60 sec. As you know this is not acceptable. So can you please help me to reduce this time frame?
POINT 1
For I IN( select /*+ no_xml_query_rewrite */
x.firstname fnname,
x.LastName lstname,
x.BirthDate birthdate,
x.Gender gender,
x.usercode usercode,
x.opened opened,
x.time time,
x.TobaccoInd TobaccoInd,
x.Employmeeid Employmeeid,
x.Title Title,
x.zip zip,
x.riskclass riskclass,
x.policystatus policystatus,
x.NYReg60Ind NYReg60Ind,
x.Exchange1035Ind Exchange1035Ind,
x.ModalPremAmt ModalPremAmt,
x.FaceAmt FaceAmt,
x.vProductType vProductType,
x.vHoldingSysKey vHoldingSysKey,
x.InterestPercent InterestPercent,
x.vPolno vPolno,
/*x.DSGN_OPT_AMT DSGN_OPT_AMT,
x.dsgn_opt_pct dsgn_opt_pct,
x.ArrType ArrType,
x.ArrSubType ArrSubType,
x.ArrStatus ArrStatus,*/
x.Arrangement,
x.vattdate vattdate,
x.vatttime vatttime,
x.EVENT_NM EVENT_NM,
x.AttachmentData AttachmentData,
x.AttachmentSource AttachmentSource,
x.attusercode attusercode,
x.vHoldingid Holdingid
from (SELECT xData doc FROM dual) t,
xmltable(
'let $x := $d/TXLife/TXLifeRequest/OLifE
for $i in $x/Relation[RelationRoleCode/@tc=32]
return element r
$x/Holding[@id=$i/@OriginatingObjectID]/@id,
$x/Holding[@id=$i/@OriginatingObjectID]/Policy,
$x/Holding[@id=$i/@OriginatingObjectID]//Arrangement,
$x/Holding[@id=$i/@OriginatingObjectID]/HoldingSysKey,
$x/Holding[@id=$i/@OriginatingObjectID]/Attachment,
$x/Party[@id=$i/@RelatedObjectID]/Person,
$x/Party[@id=$i/@RelatedObjectID]/Risk,
$x/Party[@id=$i/@RelatedObjectID]/Employment,
$x/Party[@id=$i/@RelatedObjectID]/Address,
$x/Activity,
$x/Relation[@OriginatingObjectID=$x/Holding[@id=$i/@OriginatingObjectID]/@id][RelationRoleCode/@tc=32]/InterestPercent
passing doc as "d"
columns
vHoldingid varchar2(50) path '@id',
usercode varchar2(200) path 'Activity/UserCode',
opened varchar2(20) path 'Activity/Opened',
time varchar2(20) path 'Activity/OLifEExtension/ActivityExtension/OpenedTime',
InterestPercent varchar2(200) path 'InterestPercent',
vPolno number path 'Policy/PolNumber',
riskclass varchar2(20) path 'Policy/Life/Coverage/CovOption/UnderwritingClass/@tc',
policystatus varchar2(100) path 'Policy/PolicyStatus/@tc',
NYReg60Ind VARCHAR2(100) path 'Policy/OLifEExtension/PolicyExtension/NYReg60Ind/@tc',
Exchange1035Ind varchar2(10) path 'Policy/Life/LifeUSA/OLifEExtension/LifeUSAExtension/Exchange1035Ind/@tc',
ModalPremAmt varchar2(20) path 'Policy/Life/Coverage/ModalPremAmt',
FaceAmt varchar2(20) path 'Policy/Life/FaceAmt',
vProductType VARCHAR2(100) path 'Policy/ProductType/@tc',
firstname VARCHAR2(200) path 'Person/FirstName',
LastName VARCHAR2(200) path 'Person/LastName',
BirthDate VARCHAR2(20) PATH 'Person/BirthDate',
Gender varchar2(10) PATH 'Person/Gender/@tc',
TobaccoInd varchar2(5) path 'Risk/TobaccoInd/@tc',
Employmeeid varchar2(100) path 'Employment/EmployeeID',
Title varchar2(100) path 'Employment/Title',
zip varchar2(100) path 'Address/Zip',
vHoldingSysKey varchar2(100) path 'HoldingSysKey',
Arrangement XMLTYPE PATH 'Arrangement',
/*DSGN_OPT_AMT varchar2(100) path 'Arrangement/ArrSource[TransferAmtType/@tc=2]/TransferAmt',
dsgn_opt_pct varchar2(100) path 'Arrangement/ArrSource[TransferAmtType/@tc=3]/TransferPct',
ArrType VARCHAR2(20) path 'Arrangement/ArrType/@tc',
ArrSubType VARCHAR2(20) path 'Arrangement/OLifEExtension/ArrangementExtension/ArrSubType/@tc',
ArrStatus VARCHAR2(10) path 'Arrangement/ArrStatus/@tc',*/
EVENT_NM VARCHAR2(1000) path 'Attachment/Description',
AttachmentData VARCHAR2(1000) path 'Attachment/AttachmentData',
AttachmentSource VARCHAR2(1000) path 'Attachment/AttachmentSource',
attusercode vARCHAR2(1000) path 'Attachment/UserCode',
vattdate VARCHAR2(20) PATH 'Attachment/DateCreated',
vatttime VARCHAR2(20) path 'Attachment/OLifEExtension/AttachmentExtension/CreationTime'
) x
LOOP
     BEGIN
          POINT 2
          <Here comes the business logic>
     END;
END LOOP;
Logic posted in Forum:
I guess this should normally work without the hint (NO_XML_QUERY_REWRITE), but actually it doesn't :
SQL> select /*+ no_xml_query_rewrite */
2 x.*
3 from test_xml t,
4 xmltable(
5 'let $x := $d/TXLife/TXLifeRequest/OLifE
6 for $i in $x/Relation[RelationRoleCode/@tc="32"]
7 return element r
8 {
9 $x/Holding[@id=$i/@OriginatingObjectID]/Policy
10 , $x/Party[@id=$i/@RelatedObjectID]/Person
11 }'
12 passing t.object_value as "d"
13 columns PolNumber number path 'Policy/PolNumber'
14 , FirstName varchar2(30) path 'Person/FirstName'
15 , LastName varchar2(30) path 'Person/LastName'
16 ) x
17 ;
POLNUMBER FIRSTNAME LASTNAME
308221234 John Doe
308221235 Jane Doe
TEST_XML is an XMLType table (binary storage) where I loaded the XML document.
Edited by: 916962 on Feb 25, 2012 5:42 AM

Vamsi,
Please try the steps below :
1) Create an xmltype table (could be temporary if you want) :
create table tmp_xml of xmltype
xmltype store as securefile binary xml;2) At the beginning of your procedure, store the input CLOB in the table :
insert into tmp_xml values(xmltype(xData));3) Then in the procedure, query directly from the XMLType table.
Here's a modified and simplified (for this example) version of your actual query :
select x.ooid
     , x.roid
     , x.interestpercent
     , x1.*
     , x2.*
from tmp_xml t
   , xmltable(
       '/TXLife/TXLifeRequest/OLifE/Relation[RelationRoleCode/@tc="32"]'
       passing t.object_value
       columns OOID            varchar2(50)  path '@OriginatingObjectID'
             , ROID            varchar2(50)  path '@RelatedObjectID'
             , InterestPercent varchar2(200) path 'InterestPercent'
     ) x
   , xmltable(
       '/TXLife/TXLifeRequest/OLifE/Holding[@id=$ooid]'
       passing t.object_value, x.ooid as "ooid"
       columns
         vPolno          number        path 'Policy/PolNumber',
         vProductType    varchar2(100) path 'Policy/ProductType/@tc',
         policystatus    varchar2(100) path 'Policy/PolicyStatus/@tc',
         FaceAmt         varchar2(20)  path 'Policy/Life/FaceAmt',
         ModalPremAmt    varchar2(20)  path 'Policy/Life/Coverage/ModalPremAmt',
         riskclass       varchar2(20)  path 'Policy/Life/Coverage/CovOption/UnderwritingClass/@tc',
         Exchange1035Ind varchar2(10)  path 'Policy/Life/LifeUSA/OLifEExtension/LifeUSAExtension/Exchange1035Ind/@tc', 
         NYReg60Ind      varchar2(100) path 'Policy/OLifEExtension/PolicyExtension/NYReg60Ind/@tc'
     ) x1
   , xmltable(
       '/TXLife/TXLifeRequest/OLifE/Party[@id=$roid]'
       passing t.object_value, x.roid as "roid"
       columns
         firstname   varchar2(200) path 'Person/FirstName',
         LastName    varchar2(200) path 'Person/LastName',
         BirthDate   date          path 'Person/BirthDate',
         Gender      varchar2(10)  path 'Person/Gender/@tc',
         TobaccoInd  varchar2(5)   path 'Risk/TobaccoInd/@tc',
         Employmeeid varchar2(100) path 'Employment/EmployeeID',
         Title       varchar2(100) path 'Employment/Title',
         zip         varchar2(100) path 'Address/Zip'
     ) x2
OOID          ROID          INTERESTPERCENT        VPOLNO VPRODUCTTYPE  POLICYSTATUS   FACEAMT    MODALPREMAMT   RISKCLASS    EXCHANGE1035IND NYREG60IND   FIRSTNAME      LASTNAME      BIRTHDATE   GENDER     TOBACCOIND EMPLOYMEEID    TITLE            ZIP
Holding_1     Client_1      50                  308221234 1009800001    1              150000     500            1009800001   1               1            John           Doe           25/10/1960  1          0          12345678       Vice President   07310
Holding_3     Client_2                          308221235 1009800001    1              150000     500            1009800001   1               1            Jane           Doe           30/10/1970  2          0          98765432                        07310
The explain plan should show something like this ("streaming evaluation" instead of "collection iterator fetch") :
Execution Plan
Plan hash value: 201581907
| Id  | Operation             | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT      |         |  4451M|   551G|  1501M  (1)|999:59:59 |
|   1 |  NESTED LOOPS         |         |  4451M|   551G|  1501M  (1)|999:59:59 |
|   2 |   NESTED LOOPS        |         |    54M|  5976M|    18M  (1)| 61:17:09 |
|   3 |    NESTED LOOPS SEMI  |         |   667K|    61M|   222K  (1)| 00:44:34 |
|   4 |     NESTED LOOPS      |         |  8168 |   757K|    32   (0)| 00:00:01 |
|   5 |      TABLE ACCESS FULL| TMP_XML |     1 |    87 |     3   (0)| 00:00:01 |
|   6 |      XPATH EVALUATION |         |       |       |            |          |
|*  7 |     XPATH EVALUATION  |         |       |       |            |          |
|*  8 |    XPATH EVALUATION   |         |       |       |            |          |
|*  9 |   XPATH EVALUATION    |         |       |       |            |          |
Predicate Information (identified by operation id):
   7 - filter("P5"."C_01$"='32')
   8 - filter("P1"."C_01$"=CAST("P"."C_03$" AS varchar2(50)  ))
   9 - filter("P2"."C_01$"=CAST("P"."C_02$" AS varchar2(50)  ))How complex are the business rules you're implementing in the loop? Do you really need a FOR loop at all?
For instance, if you're just inserting into relational tables, then you don't have to loop.
Edited by: odie_63 on 19 mars 2012 15:23

Similar Messages

  • How to query XML file RDL SSRS Report to find column titles?

    I have list of SSRS reports  theirRDL file. How can we query the file to find like text book name as below(  <Textbox Name="bippie_passed_qa_photostamps_orders_amount">). Catlog t able in report server does not provide column title
    but i am trying to find column title through RDL file. How can we query in SQL server 2012 version too? I am new in XML please help is appreciated.
      </Textbox>
                      </CellContents>
                    </TablixCell>
                    <TablixCell>
                      <CellContents>
                        <Textbox Name="bippie_passed_qa_photostamps_orders_amount">
                          <CanGrow>true</CanGrow>
                          <KeepTogether>true</KeepTogether>
                          <Paragraphs>
                            <Paragraph>
                              <TextRuns>
                                <TextRun>
                                  <Value>=Fields!bippie_passed_qa_photostamps_orders_amount.Value</Value>
                                  <Style>
                                    <FontSize>8pt</FontSize>
                                    <Format>'$'#,0.00;('$'#,0.00);''</Format>
                                  </Style>
                                </TextRun>
                              </TextRuns>
                              <Style>
                                <TextAlign>Right</TextAlign>

    You will first need to get your report XML from the dbo.Catalog table but something like this should work:
    -- !!TODO get your report XML from the dbo.Catalog table
    DECLARE @ssrsXML TABLE ( yourXML XML )
    INSERT INTO @ssrsXML
    SELECT '<TablixCell>
    <CellContents>
    <Textbox Name="bippie_passed_qa_photostamps_orders_amount">
    <CanGrow>true</CanGrow>
    <KeepTogether>true</KeepTogether>
    <Paragraphs>
    <Paragraph>
    <TextRuns>
    <TextRun>
    <Value>=Fields!bippie_passed_qa_photostamps_orders_amount.Value</Value>
    <Style>
    <FontSize>8pt</FontSize>
    <Format>''$''#,0.00;(''$''#,0.00);''''</Format>
    </Style>
    </TextRun>
    </TextRuns>
    <Style>
    <TextAlign>Right</TextAlign>
    </Style>
    </Paragraph>
    </Paragraphs>
    </Textbox>
    </CellContents>
    </TablixCell>'
    SELECT t.*, c.c.value('@Name', 'VARCHAR(100)' ) nameProperty
    FROM @ssrsXML t
    CROSS APPLY yourXML.nodes('//TablixCell/CellContents/Textbox' ) c(c)

  • How to get Hierarchical XML File from a Database Join Query !

    Hi,
    How can i get a Hierarchical XML File from a Database Join Query ?
    Any join query returns repeated values as below:
    BD17:SQL>select d.dname, e.ename, e.sal
    2 from dept d
    3 natural join
    4 emp e
    5 /
    DNAME ENAME SAL
    ACCOUNTING CLARK 2450
    ACCOUNTING KING 5000
    ACCOUNTING MILLER 1300
    RESEARCH SMITH 800
    RESEARCH ADAMS 1100
    RESEARCH FORD 3000
    RESEARCH SCOTT 3000
    RESEARCH JONES 2975
    SALES ALLEN 1600
    SALES BLAKE 2850
    SALES MARTIN 1250
    SALES JAMES 950
    SALES TURNER 1500
    SALES WARD 1250
    14 rows selected.
    We tried use DBMS_XMLQUERY to generate a xml file, but it was unable to get xml in Hierarchical format.
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    - <ROWSET>
    - <ROW num="1">
    <DNAME>ACCOUNTING</DNAME>
    <ENAME>CLARK</ENAME>
    <SAL>2450</SAL>
    </ROW>
    - <ROW num="2">
    <DNAME>ACCOUNTING</DNAME>
    <ENAME>KING</ENAME>
    <SAL>5000</SAL>
    </ROW>
    - <ROW num="3">
    <DNAME>ACCOUNTING</DNAME>
    <ENAME>MILLER</ENAME>
    <SAL>1300</SAL>
    </ROW>
    - <ROW num="4">
    <DNAME>RESEARCH</DNAME>
    <ENAME>SMITH</ENAME>
    <SAL>800</SAL>
    </ROW>
    - <ROW num="5">
    <DNAME>RESEARCH</DNAME>
    <ENAME>ADAMS</ENAME>
    <SAL>1100</SAL>
    </ROW>
    - <ROW num="6">
    <DNAME>RESEARCH</DNAME>
    <ENAME>FORD</ENAME>
    <SAL>3000</SAL>
    </ROW>
    - <ROW num="7">
    <DNAME>RESEARCH</DNAME>
    <ENAME>SCOTT</ENAME>
    <SAL>3000</SAL>
    </ROW>
    - <ROW num="8">
    <DNAME>RESEARCH</DNAME>
    <ENAME>JONES</ENAME>
    <SAL>2975</SAL>
    </ROW>
    - <ROW num="9">
    <DNAME>SALES</DNAME>
    <ENAME>ALLEN</ENAME>
    <SAL>1600</SAL>
    </ROW>
    - <ROW num="10">
    <DNAME>SALES</DNAME>
    <ENAME>BLAKE</ENAME>
    <SAL>2850</SAL>
    </ROW>
    - <ROW num="11">
    <DNAME>SALES</DNAME>
    <ENAME>MARTIN</ENAME>
    <SAL>1250</SAL>
    </ROW>
    - <ROW num="12">
    <DNAME>SALES</DNAME>
    <ENAME>JAMES</ENAME>
    <SAL>950</SAL>
    </ROW>
    - <ROW num="13">
    <DNAME>SALES</DNAME>
    <ENAME>TURNER</ENAME>
    <SAL>1500</SAL>
    </ROW>
    - <ROW num="14">
    <DNAME>SALES</DNAME>
    <ENAME>WARD</ENAME>
    <SAL>1250</SAL>
    </ROW>
    </ROWSET>
    Thank you for some help.
    Nelson Alberti

    Hi,
    I wrote a general ABAP program which can be configured to grab contrent from an URL and post that content as a new PI message into the integration adapter .... from that point on normal PI configuration can be used to route it to anywhere ...
    It can be easily scheduled as a background job to grab content on a daily basis etc ...
    Regards,
    Steven

  • Can we write query in xml file to get desired field?

    I have  XML script like  below  can I query this file and get returns like Name only  for instance similar to 'select top 5 name from [HumanResources].[Department] order by DepartmentID'
    Engineering
    Tool Design
    Sales
    Marketing
    Purchasing
    <HumanResources.Department DepartmentID="1" Name="Engineering" GroupName="Research and Development" ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="2" Name="Tool Design" GroupName="Research and Development" ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="3" Name="Sales" GroupName="Sales and Marketing" ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="4" Name="Marketing" GroupName="Sales and Marketing" ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="5" Name="Purchasing" GroupName="Inventory Management" ModifiedDate="2002-06-01T00:00:00" />

    DECLARE @xml xml='<HumanResources.Department DepartmentID="1" Name="Engineering" GroupName="Research and Development"
     ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="2" Name="Tool Design" 
    GroupName="Research and Development" ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department 
    DepartmentID="3" Name="Sales" GroupName="Sales and Marketing" ModifiedDate="2002-06-01T00:00:00" />
    <HumanResources.Department DepartmentID="4" Name="Marketing" GroupName="Sales and Marketing" 
    ModifiedDate="2002-06-01T00:00:00" /><HumanResources.Department DepartmentID="5" Name="Purchasing" 
    GroupName="Inventory Management" ModifiedDate="2002-06-01T00:00:00" />'
    SELECT T.Name.value('@Name', 'VARCHAR(50)') AS Name
    FROM @xml.nodes('HumanResources.Department')
     AS T(Name);
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • How can I query data from XML file stored as a CLOB ?

    Hi folks,
    please see below sample of XML file, which is stored in "os_import_docs", column "document" as CLOB.
    I would like to query this XML file using some SQL select.
    How can I query data form below XML?
    <?xml version="1.0" encoding="UTF-8"?>
    <etd>
      <header>
        <AR>000000000</AR>
        <AW>0</AW>
        <CT>S</CT>
        <CU>H</CU>
        <CZ>SS48</CZ>
        <BU>4</BU>
        <CH>0032</CH>
        <CK>2012-11-01</CK>
        <CL>21:18</CL>
        <CW>225</CW>
        <CX>0</CX>
        <CF>SS-CZL18</CF>
        <DV>2</DV>
      </header>
      <account_group id="234">
        <account id="234">
          <invoice id="000742024">
            <da>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>A</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>88754515</BS>
              <AD>Mike Tyson</AD>
              <AC>Mike Tyson</AC>
              <AZ>CZ6521232465</AZ>
              <AE/>
              <CG>A</CG>
              <AL>A</AL>
              <BZ>.</BZ>
              <AH>Some street</AH>
              <AI/>
              <AF>Some city</AF>
              <AK>Kraj</AK>
              <AG>CZ</AG>
              <AJ>885 21</AJ>
              <CR>21-11-2012</CR>
              <AY>602718709</AY>
              <AV>800184965</AV>
              <AP/>
              <AO/>
              <AQ/>
              <AN/>
            </da>
            <da>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>A</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>88754515</BS>
              <AD>Mike Tyson</AD>
              <AC>Mike Tyson</AC>
              <AZ>CZ6521232465</AZ>
              <AE/>
              <CG>A</CG>
              <AL>L</AL>
              <BZ>Mike Tyson</BZ>
              <AH>Some street</AH>
              <AI/>
              <AF>Some city</AF>
              <AK>Kraj</AK>
              <AG>CZ</AG>
              <AJ>885 21</AJ>
              <CR>21-11-2012</CR>
              <AY/>
              <AV>800184965</AV>
              <AP/>
              <AO/>
              <AQ/>
              <AN/>
            </da>
            <detaildc CH="0032" AB="234" BS="11888954" BB="32" BA="CZ" AT="" CI="7077329000002340342" AU="" DU="1Z48395" CB="CZK">
              <dc>
                <AW>0</AW>
                <CT>D</CT>
                <CU>C</CU>
                <BY>31-10-2012</BY>
                <CA>25-10-2012</CA>
                <CV>8151</CV>
                <BT>12111</BT>
                <CJ>1</CJ>
                <AM>0</AM>
                <DR>PC</DR>
                <DS/>
                <DO>25-10-2012</DO>
                <DQ>18:42</DQ>
                <CE>1</CE>
                <BH>8151</BH>
                <CY>8151 SHELL MALKOVICE P</CY>
                <DP>049336</DP>
                <DT/>
                <BQ/>
                <BR>500000</BR>
                <CN>30</CN>
                <CM>030</CM>
                <BO>160,00</BO>
                <BF>38,900</BF>
                <BC>6224,00</BC>
                <BI>32,417</BI>
                <CD>B</CD>
                <BG>0,600</BG>
                <BK>31,817</BK>
                <BJ>0,000</BJ>
                <DI>8</DI>
                <BP>20,00%</BP>
                <CC>CZK</CC>
                <BM>5090,67</BM>
                <BN>1018,13</BN>
                <BL>6108,80</BL>
                <BD>5090,67</BD>
                <BE>1018,13</BE>
                <DW>6108,80</DW>
                <CO>Nafta</CO>
              </dc>
            </detaildc>
            <dt>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>T</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>11888954</BS>
              <BB/>
              <BA>CZ</BA>
              <DG>1</DG>
              <CN>30</CN>
              <CM>030</CM>
              <DF>160,00</DF>
              <DH>litr</DH>
              <DJ>20,00%</DJ>
              <DD>5090,67</DD>
              <DE>1018,13</DE>
              <DC>6108,80</DC>
              <DB>CZK</DB>
              <DA>P</DA>
              <AX/>
              <CQ/>
              <CP/>
            </dt>
            <dt>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>T</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>11888954</BS>
              <BB/>
              <BA>CZ</BA>
              <DG>2</DG>
              <CN/>
              <CM/>
              <DF>160,00</DF>
              <DH>litr</DH>
              <DJ/>
              <DD>5090,67</DD>
              <DE>1018,13</DE>
              <DC>6108,80</DC>
              <DB>CZK</DB>
              <DA/>
              <AX/>
              <CQ/>
              <CP/>
            </dt>
            <dt>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>T</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>11888954</BS>
              <BB/>
              <BA>CZ</BA>
              <DG>19</DG>
              <CN/>
              <CM/>
              <DF/>
              <DH/>
              <DJ/>
              <DD>5090,67</DD>
              <DE>1018,13</DE>
              <DC>6108,80</DC>
              <DB>CZK</DB>
              <DA/>
              <AX/>
              <CQ/>
              <CP/>
            </dt>
            <dt>
              <AR>000742024</AR>
              <AW>0</AW>
              <CT>D</CT>
              <CU>T</CU>
              <CH>0032</CH>
              <BY>31-10-2012</BY>
              <CA>25-10-2012</CA>
              <AB>234</AB>
              <AA>234</AA>
              <BS>11888954</BS>
              <BB/>
              <BA>CZ</BA>
              <DG>8</DG>
              <CN/>
              <CM/>
              <DF/>
              <DH/>
              <DJ/>
              <DD>5090,67</DD>
              <DE>1018,13</DE>
              <DC>6108,80</DC>
              <DB>CZK</DB>
              <DA/>
              <AX/>
              <CQ/>
              <CP/>
            </dt>
          </invoice>
        </account>
      </account_group>
      <footer>
        <AR>999999999</AR>
        <AW>0</AW>
        <CT>S</CT>
        <CU>T</CU>
        <CZ>SS48</CZ>
        <BU>4</BU>
        <CH>0032</CH>
        <CK>2012-11-01</CK>
        <CL>23:04</CL>
        <CW>225</CW>
        <BX>1</BX>
        <CS>7</CS>
        <BW>0000000000000610880</BW>
      </footer>
    </etd>sample - not working:
        select  x.*
        from os_import_docs d
             ,XMLTABLE('/etd/header'
                        PASSING httpuritype(d.document).getXML()
                        COLUMNS
                           response_status varchar2(50) PATH 'AR'
                        )  x
       where d.object_id = 2587058
         and rownum = 1; 
    ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 6196, maximum: 4000)Many thanks,
    Tomas

    Hello,
    many thanks for the reply. Your examples are very usefull for me.
    To answer your questions.
    An XML structure:
    /etd
        /header - repeat in each row in output
        /account_group/account
            /invoice
                /da - repeat for each details under "selected "invoice
                /detaildc/dc - the lowest level 
                /detaildn/dn - the lowest level 
                /dt - repeat for each details under "selected "invoice
        /footer - repeat in each row in outputI would like to to have a 1 row for each "record" in /detaildc section and include related nodes at higher levels.
    Please see below XML file, which is simplified file of example in first post, but includes a complete xml structure which needs to be queried in db.
    <?xml version="1.0" encoding="UTF-8"?>
    <etd>
      <header>
        <AR>000000000</AR>
        <CK>2012-10-31</CK>
        <CF>SS-CZL19</CF>
      </header>
      <account_group id="234">
        <account id="234">
          <invoice id="EI08P4000">
            <da>
              <AR>EI08P4000</AR>
              <AD>Mickey Mouse</AD>
            </da>
            <detaildc DU="1Z56655" CB="EUR">
              <dc>
                <DO>16-10-2012</DO>
                <CY>ASFINAG POST_MAUT</CY>
                <BM>1940,60</BM>
                <CO>Dalnicni znamka</CO>
              </dc>
            </detaildc>
            <detaildc DU="2Z55050" CB="EUR">
              <dc>
                <DO>17-10-2012</DO>
                <CY>ASFINAG POST_MAUT</CY>
                <BM>1328,10</BM>
                <CO>Dalnicni znamka</CO>
              </dc>
            </detaildc>
            <detaildc DU="2Z90001" CB="EUR">
              <dc>
                <DO>27-10-2012</DO>
                <CY>ASFINAG POST_MAUT</CY>
                <BM>185,10</BM>
                <CO>Poplatek</CO>
              </dc>
            </detaildc>
            <dt>
              <AR>EI08P4000</AR>
              <DG>8</DG>
            </dt>
          </invoice>
        </account>
        <account id="234">
          <invoice id="EI13T7777">
            <da>
              <AR>EI13T7777</AR>
              <AD>Mickey Mouse</AD>
            </da>
            <detaildc DU="1Z48302" CB="EUR">
              <dc>
                <DO>26-10-2012</DO>
                <CY>SANEF 07706 A 07704</CY>
                <BM>232,10</BM>
                <CO>Dalnicni poplatek</CO>
              </dc>
            </detaildc> 
            <detaildc DU="1Z48302" CB="EUR">
              <dc>
                <DO>20-10-2012</DO>
                <CY>TEST A 07704</CY>
                <BM>30,10</BM>
                <CO>Poplatek</CO>
              </dc>
            </detaildc>       
            <dt>
              <AR>EI13T7777</AR>
              <DG>8</DG>         
            </dt>
          </invoice>
        </account>
        <account id="234">
          <invoice id="EI327744">
            <da>
              <AR>EI327744</AR>
              <AD>Mickey Mouse</AD>
            </da>
            <detaildn  CI="707732 00000234" >
              <dn>
                <BY>30-10-2012</BY>
                <BM>8,10</BM>
              </dn>
            </detaildn>
            <detaildn CI="707732 00000234" >
              <dn>
                <BY>30-10-2012</BY>
                <BM>399,50</BM>
              </dn>
            </detaildn>
            <dt>
              <AR>EI327744</AR>
            </dt>
          </invoice>
        </account>
        <account id="234">
          <invoice id="EI349515">
            <da>
              <AR>EI349515</AR>
              <AD>Mickey Mouse</AD>
            </da>
            <detaildc DU="1Z56514" CB="EUR">
              <dc>
                <DO>29-10-2012</DO>
                <CY>ALLAMI AUTOPALYAKEZE</CY>
                <BM>1240,60</BM>
                <CO>Dalnicni znamka</CO>
              </dc>
            </detaildc>
            <detaildc DU="1Z56515" CB="EUR">
              <dc>
                <DO>19-10-2012</DO>
                <CY>ASFINAG POST_MAUT</CY>
                <BM>7428,10</BM>
                <CO>Dalnicni znamka</CO>
              </dc>
            </detaildc>
            <detaildc DU="1Z56515" CB="EUR">
              <dc>
                <DO>12-10-2012</DO>
                <CY>UK</CY>
                <BM>954,10</BM>
                <CO>Poplatek</CO>
              </dc>
            </detaildc>
            <dt>
              <AR>EI349515</AR>
              <DG>8</DG>
            </dt>
          </invoice>
        </account>
      </account_group>
      <footer>
        <CZ>SS47</CZ>
        <BU>4</BU>
        <CH>0032</CH>
        <CK>2012-10-31</CK>
        <CL>01:25</CL>
      </footer>
    </etd>Expected output
    AR     CK     CF             AR4             AD             DU     CB     DO             CY                     BM      CO                AR5             DG     CI             BY               BM6     CZ     BU       CH       CK7    CL
    0     41213     SS-CZL19     EI08P4000     Mickey Mouse     1Z56655     EUR     16-10-2012     ASFINAG POST_MAUT     1940,60     Dalnicni znamka        EI08P4000     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI08P4000     Mickey Mouse     2Z55050     EUR     17-10-2012     ASFINAG POST_MAUT     1328,10     Dalnicni znamka        EI08P4000     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI08P4000     Mickey Mouse     2Z90001     EUR     27-10-2012     ASFINAG POST_MAUT      185,10     Poplatek        EI08P4000     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI13T7777     Mickey Mouse     1Z48302     EUR     26-10-2012     SANEF 07706 A 07704      232,10     Dalnicni poplatek  EI13T7777     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI13T7777     Mickey Mouse     1Z48302     EUR     20-10-2012     TEST A 07704               30,10     Poplatek        EI13T7777     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI327744     Mickey Mouse                                                                      EI327744          707732 00000234     30-10-2012     8,10     SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI327744     Mickey Mouse                                                                      EI327744          707732 00000234     30-10-2012     399,50     SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI349515     Mickey Mouse     1Z56514     EUR     29-10-2012     ALLAMI AUTOPALYAKEZE     1240,60     Dalnicni znamka        EI349515     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI349515     Mickey Mouse     1Z56515     EUR     19-10-2012     ASFINAG POST_MAUT     7428,10     Dalnicni znamka        EI349515     8                                    SS47     4     32     41213     01:25
    0     41213     SS-CZL19     EI349515     Mickey Mouse     1Z56515     EUR     12-10-2012     UK                      954,10     Poplatek        EI349515     8                                    SS47     4     32     41213     01:25

  • XML File from SQL Query

    I have created XML File from Query using below function:-
    select dbms_xmlgen.getxml('
    select * from tblreports where rownum<=1') from dual;
    "(CLOB) <?xml version="1.0"?>
    <ROWSET>
    <ROW>
    <REPORTID>preRES0011</REPORTID>
    <ALIAS>Date wise Summary of pins Report</ALIAS>
    <ACTIVE>Y</ACTIVE>
    <TITLE>Date wise Summary of pins Report</TITLE>
    <QUERY>select tsb.month1,
    count(SIDNUMBER)GENERATED,
    sum(case WHEN SERIALSTATUSID=&apos;SRS01&apos; THEN 1 ELSE 0 END)NotAllocated,
    SUM(CASE WHEN SERIALSTATUSID=&apos;SRS02&apos; or SERIALSTATUSID=&apos;SRS03&apos; or SERIALSTATUSID=&apos;SRS05&apos; THEN 1 ELSE 0 END)ALLOCATED,
    SUM(CASE WHEN SERIALSTATUSID=&apos;SRS02&apos; or SERIALSTATUSID=&apos;SRS01&apos; THEN 1 ELSE 0 END)NOTASSIGNEDTORESELLER,
    SUM(CASE WHEN SERIALSTATUSID=&apos;SRS03&apos; THEN 1 ELSE 0 END)READYTOACTIVATE,
    sum(CASE WHEN SERIALSTATUSID=&apos;SRS05&apos; THEN 1 ELSE 0 END)ACTIVATED,
    sum(CASE WHEN SERIALSTATUSID=&apos;SRS06&apos; THEN 1 ELSE 0 END)Terminated,
    sum(CASE WHEN SCRAPSTATUSID=&apos;CST01&apos; THEN 1 ELSE 0 END)scraped,
    sum(CASE WHEN LOCKSTATUSID=&apos;CST01&apos; THEN 1 ELSE 0 END)locked,
    NULL,
         NULL,
         NULL,
         NULL,
         NULL,
    NULL,
    NULL     
    from (SELECT TO_CHAR(CREATEDATE,&apos;DD-MON-YYYY&apos;)MONTH1 ,PINUSAGEMODEID,SERIALBATCHID,SERIALIDCOUNT,CREATEDATE FROM TBLMSERIALBATCH )TSB,
    tblmserial ts
    where TSB.SERIALBATCHID=ts.SERIALBATCHID
    and to_char(TSB.CREATEDATE,&apos;MON-YYYY&apos;)=&apos;$1&apos;
    GROUP BY TSB.MONTH1
    order by TO_DATE(MONTH1,&apos;dd-mon-yyyy&apos;) DESC</QUERY>
    <CONNECTIVITYID>C0001</CONNECTIVITYID>
    <INPUTREQUIRED>Y</INPUTREQUIRED>
    <INPUTNAME>Month</INPUTNAME>
    <CREATEDATE>30-JAN-10</CREATEDATE>
    <LASTMODIFIEDDATE>22-FEB-10</LASTMODIFIEDDATE>
    <CREATEDBY>reportadmin</CREATEDBY>
    <LASTMODIFIEDBY>reportadmin</LASTMODIFIEDBY>
    <TITLEPARAM>Y</TITLEPARAM>
    <SUBTITLE>Date wise Summary of pins Report For &amp;1</SUBTITLE>
    <ELEMENTTYPEID>AET002</ELEMENTTYPEID>
    <REPORTTYPEID>RTP01</REPORTTYPEID>
    <SORTFIELD>Disable</SORTFIELD>
    </ROW>
    </ROWSET>
    But in that it is taking '&apos;' for ' ' instead of '$1' it is taking &apos;$1&apos;
    how to keep ' ' in XML file instead of &apos?

    You can use bcp with query out option
    use your above query as the source query and use queryout option after specifying destination as your required local file path (specify extension as .xml)
    see
    http://visakhm.blogspot.com/2013/10/bcp-out-custom-format-data-to-flat-file.html
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Generate an xml file from Database query results

    Hi, can anyone help me out with this problem I'm having. What are the steps in creating an xml file directly from the results of a database query. I currently have a very simply process that queries a database via a partner link. The query returns the data but it's from this point that I am stuck. I need to create an xml file with the data along with the xml tags. I've looked at dozens of tutorials with no luck.
    I would greatly appreciate help with this.
    bpel rookie

    Should be quite simple.
    Create another partnerlink, configure it to use the file adapter, and write to an XML file. In this case you need to create an XML Schema (.xsd) of the file you want to create.
    Before you write to the file, either add assign steps to copy individual attributes or use a transform activity to convert from the database format to the file (xml) format.

  • Master-details query to XML file?

    Hi:
    I'm new in XML and Oracle. I want to create XML file from two tables (master-details).
    I made a small serach and tried some examples:
    Say we have these tables:
    CREATE TABLE "TEST_XML"
    (     "ID" NUMBER,
         "NAME" VARCHAR2(15),
         "AMOUNT" NUMBER,
         CONSTRAINT "TEST_XML_PK" PRIMARY KEY ("ID") ENABLE
    CREATE TABLE "TEST_XML2"
    (     "ID2" NUMBER,
         "NAME2" VARCHAR2(20),
         "AMOUNT2" NUMBER
    ALTER TABLE "TEST_XML2" ADD CONSTRAINT "TEST_XML2_FK" FOREIGN KEY ("ID2")
         REFERENCES "TEST_XML" ("ID") ENABLE
    INSERT INTO TEST_XML VALUES (1,'A',50);
    INSERT INTO TEST_XML VALUES (2,'B',30);
    INSERT INTO TEST_XML VALUES (3,'C',70);
    INSERT INTO TEST_XML2 VALUES (1,'AA',10);
    INSERT INTO TEST_XML2 VALUES (1,'AB',20);
    INSERT INTO TEST_XML2 VALUES (1,'AC',20);
    INSERT INTO TEST_XML2 VALUES (2,'BA',10);
    INSERT INTO TEST_XML2 VALUES (2,'BB',20);
    INSERT INTO TEST_XML2 VALUES (3,'CA',20);
    INSERT INTO TEST_XML2 VALUES (3,'CB',40);
    INSERT INTO TEST_XML2 VALUES (3,'CC',10);
    I want a query to create XML file contains data from TEST_XML table and for each row the related data from TEST_XML2 table.
    I did some tries (working in iSQL*PLUS):
    SET SERVEROUTPUT ON
    DECLARE
    v_ctx DBMS_XMLGEN.ctxType;
    v_file Utl_File.File_Type;
    v_xml CLOB;
    v_more BOOLEAN := TRUE;
    BEGIN
    -- Create XML document from query.
    v_ctx := DBMS_XMLGEN.newContext('select id,name,amount,cursor (select id2,name2,amount2 from test_xml2 t2 where t2.id2=t1.id) val from test_xml t1');
    DBMS_XMLGEN.setMaxRows(v_ctx, 10);
    DBMS_XMLGEN.setRowsetTag(v_ctx, 'CLAIM');
    -- Output XML document to file.
    v_file := Utl_File.FOpen('TEST_DIR', 'test1.xml', 'w');
    WHILE v_more
    LOOP
    v_xml := DBMS_XMLGEN.GetXML(v_ctx,0);
    EXIT WHEN dbms_xmlgen.getNumRowsProcessed(v_ctx) =0;
    Utl_File.Put(v_file,v_xml);
    END LOOP;
    Utl_File.FClose(v_file);
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,255));
    Utl_File.FClose(v_file);
    END;
    But hte output wasn't as I wanted:
    <CLAIM>
    <ROW>
    <ID>1</ID>
    <NAME>A</NAME>
    <AMOUNT>50</AMOUNT>
    <VAL>
    <VAL_ROW>
    <ID2>1</ID2>
    <NAME2>AA</NAME2>
    <AMOUNT2>10</AMOUNT2>
    </VAL_ROW>
    <VAL_ROW>
    <ID2>1</ID2>
    <NAME2>AB</NAME2>
    <AMOUNT2>20</AMOUNT2>
    </VAL_ROW>
    <VAL_ROW>
    <ID2>1</ID2>
    <NAME2>AC</NAME2>
    <AMOUNT2>20</AMOUNT2>
    </VAL_ROW>
    </VAL>
    </ROW>
    <ROW>
    <ID>3</ID>
    <NAME>C</NAME>
    <AMOUNT>70</AMOUNT>
    <VAL>
    <VAL_ROW>
    <ID2>3</ID2>
    <NAME2>CA</NAME2>
    <AMOUNT2>20</AMOUNT2>
    </VAL_ROW>
    <VAL_ROW>
    <ID2>3</ID2>
    <NAME2>CB</NAME2>
    <AMOUNT2>40</AMOUNT2>
    </VAL_ROW>
    <VAL_ROW>
    <ID2>3</ID2>
    <NAME2>CC</NAME2>
    <AMOUNT2>10</AMOUNT2>
    </VAL_ROW>
    </VAL>
    </ROW>
    <ROW>
    <ID>2</ID>
    <NAME>B</NAME>
    <AMOUNT>30</AMOUNT>
    <VAL>
    <VAL_ROW>
    <ID2>2</ID2>
    <NAME2>BA</NAME2>
    <AMOUNT2>10</AMOUNT2>
    </VAL_ROW>
    <VAL_ROW>
    <ID2>2</ID2>
    <NAME2>BB</NAME2>
    <AMOUNT2>20</AMOUNT2>
    </VAL_ROW>
    </VAL>
    </ROW>
    </CLAIM>
    Notice that for each details (from TEST_XML2) there is <VAL> tag which I don't need beside i want a query which is applicable on all environments.
    May anyone help me please......
    Regards,
    Saad

    The following looks like it produces your desired output. I used the WITH to simulate your two tables so I didn't have to CREATE them. This runs on 10.2.0.1. I'm not sure what bugs you are referring to as SQL/XML is stable in 10g that I have seen. I'm sure some bugs exist somewhere in it, just not with this usage. Just start with the SELECT statement to run on your system.
    WITH test_xml AS
    (SELECT 1 ID, 'A' name, 50 amount FROM DUAL UNION ALL
    SELECT 2, 'B', 30  FROM DUAL UNION ALL
    SELECT 3, 'C', 70  FROM DUAL),
    test_xml2 AS
    (SELECT 1 ID2, 'AA' name2, 10 amount2 FROM DUAL UNION ALL
    SELECT 1, 'AB', 20  FROM DUAL UNION ALL
    SELECT 1, 'AC', 20  FROM DUAL UNION ALL
    SELECT 2, 'BA', 10  FROM DUAL UNION ALL
    SELECT 2, 'BB', 20  FROM DUAL UNION ALL
    SELECT 2, 'BC', 20  FROM DUAL UNION ALL
    SELECT 3, 'CA', 20  FROM DUAL UNION ALL
    SELECT 3, 'CB', 40  FROM DUAL UNION ALL
    SELECT 3, 'CC', 10  FROM DUAL)
    SELECT XMLElement("CLAIM",
             XMLAgg(
               XMLElement("ROW",
                 XMLForest(id "ID",
                           name "NAME",
                           amount "AMOUNT"),
                 (SELECT XMLAgg(XMLElement("VAL_ROW",
                                 XMLForest(id2 "ID2",
                                           name2 "NAME2",
                                           amount2 "AMOUNT2")))
                          FROM test_xml2 t2
                         WHERE t2.id2=t1.id)
      FROM test_xml t1This solution works in any environment where you can issue a SQL statement from, be it SQL*Plus, PL/SQL, Java, etc.

  • How to generate XML file from oracle database query result

    Hi dudes,
    as stated on the subject, can anyone suggests me how can i achieve the task stated above??
    Here is a brief description of my problem:
    I need to create a XML file once i query from the oracle database, and the query result returned from the database will be stored in XML file.
    I'd searched around the JAXB, DOM, SAXP and the like basic concepts, but i still don't know how to start??
    Any suggestions ???

    Read this:
    http://www.cafeconleche.org/books/xmljava/chapters/ch08s05.html
    You might have to read more of the book to understand that chapter.

  • Convert XML file into ABAP Query

    Hi All,
    Can we capture a XML file generated from a Non-SAP system in SAP system and convert into ABAP Query to retreive Data from DB and post it back as a XML query to the same Non-SAP system using a Middleware. Can this process be done in cache memory level itself instead of saving in DB.
    If it is possible pls do tell the procedure and steps to be followed.
    Suggestion and Help will be much Appreciated
    Thanks & Regds.
    Ramesh

    Hi check these blogs....
    <a href="/people/r.eijpe/blog/2005/11/21/xml-dom-processing-in-abap-part-ii--convert-an-xml-file-into-an-abap-table-using-sap-dom-approach:///people/r.eijpe/blog/2005/11/21/xml-dom-processing-in-abap-part-ii--convert-an-xml-file-into-an-abap-table-using-sap-dom-approach
    <a href="/people/tobias.trapp/blog/2005/12/08/xml-processing-in-abap--part-6:///people/tobias.trapp/blog/2005/12/08/xml-processing-in-abap--part-6

  • How to make an XML file from SQL query on local disc (c:\temp)?

    This query shows me XML results, but can I somehow make an XML file to local disc?
    Thanks.
    DECLARE @IMO NUMERIC(8,0)
    DECLARE @Counter INT
    SELECT @Counter = 1
    WHILE ( @Counter <15 )
    BEGIN
    SET @IMO = (SELECT ImoNo from Vessel where ID=@Counter)
    SELECT top 1
    @IMO as ImoNumber,
    VesselName,
    Time,
    lat as CurrentLatitude,
    lon as CurrentLongitude,
    sog as SpeedOverGround,
    cog as CourseOverGround,
    hdg as HeadingInDegrees,
    GoingToCountry = (SELECT TOP 1 CountryName
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'false'
    ORDER BY DestPosETA ),
    GoingToHarbour = (SELECT TOP 1 Harbour
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'false'
    ORDER BY DestPosETA ),
    DestinationLatitude = (SELECT TOP 1 DestPosLAT
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'false'
    ORDER BY DestPosETA ) ,
    DestinationLongitude = (SELECT TOP 1 DestPosLON
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'false'
    ORDER BY DestPosETA ),
    ArrivalTime = (SELECT TOP 1 DestPosETA
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'false'
    ORDER BY DestPosETA ),
    GoingFromCountry = (SELECT TOP 1 CountryName
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'true'
    ORDER BY DestPosETA desc),
    GoingFromHarbour = (SELECT TOP 1 Harbour
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'true'
    ORDER BY DestPosETA desc),
    DepartureTime = (SELECT TOP 1 DestPosETD
    FROM ShipSchedule
    WHERE ImoNo = @IMO and DestPosArrived = 'true'
    ORDER BY DestPosETA desc)
    FROM Position
    WHERE ImoNo = @IMO
    order by time desc
    for Xml AUTO,elements,root('SplosnaPlovba')
    SELECT @Counter = @Counter + 1
    END

    You can use bcp with query out option
    use your above query as the source query and use queryout option after specifying destination as your required local file path (specify extension as .xml)
    see
    http://visakhm.blogspot.com/2013/10/bcp-out-custom-format-data-to-flat-file.html
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Change query string in ireport xml file?

    greetings all
    iam newbie to xml
    first i want to add the xml file to a packge named first,how to do that?
    second i want to change the query string to be
    "select * from report where month= "+textfield.getText()
    here's the code:
    <?xml version="1.0" encoding="UTF-8"  ?>
    <!-- Created with iReport - A designer for JasperReports -->
    <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
    <jasperReport
               name="Untitled_report_2"
               columnCount="1"
               printOrder="Vertical"
               orientation="Portrait"
               pageWidth="595"
               pageHeight="842"
               columnWidth="535"
               columnSpacing="0"
               leftMargin="30"
               rightMargin="30"
               topMargin="20"
               bottomMargin="20"
               whenNoDataType="NoPages"
               isTitleNewPage="false"
               isSummaryNewPage="false">
         <property name="ireport.scriptlethandling" value="0" />
         <property name="ireport.encoding" value="UTF-8" />
         <import value="java.util.*" />
         <import value="net.sf.jasperreports.engine.*" />
         <import value="net.sf.jasperreports.engine.data.*" />
         <queryString><![CDATA[SELECT * FROM report]]></queryString>
         <field name="category" class="java.lang.String"/>
         <field name="values" class="java.lang.Integer"/>
         <field name="series" class="java.lang.String"/>
              <background>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </background>
              <title>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </title>
              <pageHeader>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </pageHeader>
              <columnHeader>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </columnHeader>
              <detail>
                   <band height="201"  isSplitAllowed="true" >
                        <stackedBar3DChart>
                             <chart  hyperlinkTarget="Self" >
                             <reportElement
                                  x="32"
                                  y="21"
                                  width="394"
                                  height="144"
                                  key="element-1"/>
                             <box></box>
                                  <chartLegend textColor="#000000" backgroundColor="#FFFFFF" >
                             </chartLegend>
                             </chart>
                             <categoryDataset>
                                  <dataset >
                                  </dataset>
                                  <categorySeries>
                                       <seriesExpression><![CDATA[$F{series}]]></seriesExpression>
                                       <categoryExpression><![CDATA[$F{category}]]></categoryExpression>
                                       <valueExpression><![CDATA[$F{values}]]></valueExpression>
                        <itemHyperlink >
                        </itemHyperlink>
                                  </categorySeries>
                             </categoryDataset>
                             <bar3DPlot >
                                  <plot />
                                  <categoryAxisFormat>
                                       <axisFormat >
                                       </axisFormat>
                                  </categoryAxisFormat>
                                  <valueAxisFormat>
                                       <axisFormat >
                                       </axisFormat>
                                  </valueAxisFormat>
                             </bar3DPlot>
                        </stackedBar3DChart>
                   </band>
              </detail>
              <columnFooter>
                   <band height="3"  isSplitAllowed="true" >
                   </band>
              </columnFooter>
              <pageFooter>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </pageFooter>
              <summary>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </summary>
    </jasperReport>

    the xml file
    <?xml version="1.0" encoding="UTF-8"  ?>
    <!-- Created with iReport - A designer for JasperReports -->
    <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
    <jasperReport
               name="test"
               columnCount="1"
               printOrder="Vertical"
               orientation="Portrait"
               pageWidth="595"
               pageHeight="842"
               columnWidth="535"
               columnSpacing="0"
               leftMargin="30"
               rightMargin="30"
               topMargin="20"
               bottomMargin="20"
               whenNoDataType="NoPages"
               isTitleNewPage="false"
               isSummaryNewPage="false">
         <property name="ireport.scriptlethandling" value="0" />
         <property name="ireport.encoding" value="UTF-8" />
         <import value="java.util.*" />
         <import value="net.sf.jasperreports.engine.*" />
         <import value="net.sf.jasperreports.engine.data.*" />
         <queryString><![CDATA[SELECT * FROM report WHERE category BETWEEN 'week1' AND 'week4']]></queryString>
         <field name="category" class="java.lang.String"/>
         <field name="values" class="java.lang.Integer"/>
         <field name="series" class="java.lang.String"/>
              <background>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </background>
              <title>
                   <band height="50"  isSplitAllowed="true" >
                        <staticText>
                             <reportElement
                                  x="158"
                                  y="7"
                                  width="183"
                                  height="37"
                                  key="staticText-1"/>
                             <box></box>
                             <textElement>
                                  <font size="14"/>
                             </textElement>
                        <text><![CDATA[               Report]]></text>
                        </staticText>
                   </band>
              </title>
              <pageHeader>
                   <band height="50"  isSplitAllowed="true" >
                   </band>
              </pageHeader>
              <columnHeader>
                   <band height="30"  isSplitAllowed="true" >
                   </band>
              </columnHeader>
              <detail>
                   <band height="4"  isSplitAllowed="true" >
                   </band>
              </detail>
              <columnFooter>
                   <band height="2"  isSplitAllowed="true" >
                   </band>
              </columnFooter>
              <pageFooter>
                   <band height="0"  isSplitAllowed="true" >
                   </band>
              </pageFooter>
              <summary>
                   <band height="194"  isSplitAllowed="true" >
                        <stackedBar3DChart>
                             <chart  hyperlinkTarget="Self" >
                             <reportElement
                                  x="49"
                                  y="-6"
                                  width="369"
                                  height="200"
                                  key="element-1"/>
                             <box></box>
                                  <chartLegend textColor="#000000" backgroundColor="#FFFFFF" >
                             </chartLegend>
                             </chart>
                             <categoryDataset>
                                  <dataset >
                                  </dataset>
                                  <categorySeries>
                                       <seriesExpression><![CDATA[$F{series}]]></seriesExpression>
                                       <categoryExpression><![CDATA[$F{category}]]></categoryExpression>
                                       <valueExpression><![CDATA[$F{values}]]></valueExpression>
                        <itemHyperlink >
                        </itemHyperlink>
                                  </categorySeries>
                             </categoryDataset>
                             <bar3DPlot >
                                  <plot />
                                  <categoryAxisFormat>
                                       <axisFormat >
                                       </axisFormat>
                                  </categoryAxisFormat>
                                  <valueAxisFormat>
                                       <axisFormat >
                                       </axisFormat>
                                  </valueAxisFormat>
                             </bar3DPlot>
                        </stackedBar3DChart>
                   </band>
              </summary>
    </jasperReport>the java code:
    import java.sql.*;
    import net.sf.jasperreports.view.JasperViewer;
    import net.sf.jasperreports.engine.xml.JRXmlLoader;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.design.JasperDesign;
    import net.sf.jasperreports.engine.JasperReport;
    import java.io.OutputStream;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class ReportDriver {
    public static void createAndShowGUI(){
    Object[]obj={"1","2"};
    JComboBox combo=new JComboBox(obj);
    JFrame frame=new JFrame("Test");
    JButton button=new JButton("Show Report");
    frame.setLayout(new FlowLayout());
    frame.setLocationRelativeTo(null);
    frame.add(combo);
    frame.add(button);
    frame.setSize(150,100);
    frame.setVisible(true);
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    show_report();     
    public static void show_report(){
    try{
             Class.forName("com.mysql.jdbc.Driver");
             Connection c = DriverManager.getConnection("jdbc:mysql://localhost/library", "root", "");
          }catch(Exception ex) {ex.printStackTrace();}
          try{
             JasperDesign jasperDesign = JRXmlLoader.load("F:\\Program Files\\Xinox Software\\JCreatorV4\\MyProjects\\chart2\\src\\report.xml");
             JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
             Connection c = DriverManager.getConnection("jdbc:mysql://localhost/library", "root", "");
             JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, c);
             JasperViewer.viewReport(jasperPrint);
          }catch(Exception ex) {
             String connectMsg = "Could not create the report " + ex.getMessage() + " " + ex.getLocalizedMessage();
             System.out.println(connectMsg);
       public static void main(String[] args) {
        createAndShowGUI();
    }the problem is i want when the user selects 2 from the combobox and presses the button
    the where clause in the xml file is changed to BETWEEN 'week5' AND 'week8',how to do that?

  • Query in a large xml file

    Hello,
    I'm trying to work with very large xml files which are created from csv files. These files may be very large - up to 1 GB ! Untill now I have managed to do several validations on these big xml files, and the only thing that works for me is SAX parser, DOM is out of the question because it fills up memory.
    My next task is to do queries on these files, smth like:
    select field1,field2 from file.xml
    where field3 = 'A'
    and (fileld4>'B' or field1='C')
    order by field2.
    I searched the net about finding out how to make queries on xml files (since I have never done queries on xml before), but I couldn't find which "query language" is best for large files. If I use XPath (XSLT) will that not cause me memory problems because XSLT represents the file as a memory object?
    My idea is to parse the file with SAX and check every row if it fits the where condition and then write it immediately to a result xml file. But validating the where statement can be very complicated without using some tool. Also the order by statement is another problematic issue.
    Does anyone have some more intelegent ideas about how I can do this? Please help! :(
    The xml file looks like this:
    <doc>
    <row id ="1">
    <column id="1" name="column1">value</column>
    <column id="N" name="columnN">value</column>
    </row>
    <row id ="M">
    <column id="1" name="column1">value</column>
    <column id="N" name="columnN">value</column>
    </row>
    </doc>

    Hi all,
    Thank you very much for your replies.
    First, saxon didn't work because it uses an in-memory parser, and that is what I was trying to avoid.
    Different database is also out of the question, because the customer insist on XML, and also there are some files that can never be converted to a database table, because eventually with some transformations thay are changed and are not completely like the standard csv format.
    I think that maybe http://exist.sourceforge.net is the rigth solution for me, but I will probably try it in the next version of my project.
    For now I have managed to make the project with only SAXParser and a lot of back - end programming and it works ok, althoug it was very hard to make it, and will be harded to maintain, so I will try to look at the eXist project.
    Thanks everyone for the help.

  • How to combine a raw xml file stored in a table field withe other sql query in . xsq

    I created .xsql file like this:
    <xsql:query>
    select xml_file from my_table
    </xsql:query>
    xml_file is field in my_table,it stores raw xml files.
    the xml file in the result is in text format, not in xml format,how to convert the file into xml format in the result

    See the "document" demo that ships with the XSQL servlet for an example of how to do this.
    It lives in the ./demo/document subdirectory.

  • JSP Servlet and convert the result set of an SQL Query To XML file

    Hi all
    I have a problem to export my SQL query is resulty into an XML file I had fixed my servlet and JSP so that i can display all the records into my database and that the goal .Now I want to get the result set into JSP so that i can create an XML file from that result set from the jsp code.
    thisis my servlet which will call the jsp page and the jsp just behind it.
    //this is the servlet
    import java.io.*;
    import java.lang.reflect.Array;
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.naming.*;
    import javax.sql.*;
    public *class *Campaign *extends *HttpServlet
    *private* *final* *static* Logger +log+ = Logger.+getLogger+(Campaign.*class*.getName());
    *private* *final* *static* String +DATASOURCE_NAME+ = "jdbc/SampleDB";
    *private* DataSource _dataSource;
    *public* *void* setDataSource(DataSource dataSource)
    _dataSource = dataSource;
    *public* DataSource getDataSource()
    *return* _dataSource;
    *public* *void* init()
    *throws* ServletException
    *if* (_dataSource == *null*) {
    *try* {
    Context env = (Context) *new* InitialContext().lookup("java:comp/env");
    _dataSource = (DataSource) env.lookup(+DATASOURCE_NAME+);
    *if* (_dataSource == *null*)
    *throw* *new* ServletException("`" + +DATASOURCE_NAME+ + "' is an unknown DataSource");
    } *catch* (NamingException e) {
    *throw* *new* ServletException(e);
    protected *void *doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    Connection conn = *null*;
    *try* {
    conn = getDataSource().getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select post_id,comments,postname from app.posts");
    // out.println("Le r&eacute;sultat :<br>");
    ArrayList <String> Lescomments= *new* ArrayList<String>();
    ArrayList <String> Lesidentifiant = *new* ArrayList<String>();
    ArrayList <String> Lesnoms = *new* ArrayList <String>();
    *while* (rs.next()) {
    Lescomments.add(rs.getString("comments"));
    request.setAttribute("comments",Lescomments);
    Lesidentifiant.add(rs.getString("post_id"));
    request.setAttribute("id",Lesidentifiant);
    Lesnoms.add(rs.getString("postname"));
    request.setAttribute("nom",Lesnoms);
    rs.close();
    stmt.close();
    *catch* (SQLException e) {
    *finally* {
    *try* {
    *if* (conn != *null*)
    conn.close();
    *catch* (SQLException e) {
    // les param&egrave;tres sont corrects - on envoie la page r&eacute;ponse
    getServletContext().getRequestDispatcher("/Campaign.jsp").forward(request,response);
    }///end of servlet
    }///this is the jsp page called
    <%@ page import="java.util.ArrayList" %>
    <%
    // on r&eacute;cup&egrave;re les donn&eacute;es
    ArrayList nom=(ArrayList)request.getAttribute("nom");
    ArrayList id=(ArrayList)request.getAttribute("id");
    ArrayList comments=(ArrayList) request.getAttribute("comments");
    %>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    Liste des campagnes here i will create the xml file the problem is to display all rows
    <hr>
    <table>
    <tr>
    </tr>
    <tr>
    <td>Comment</td>
    <td>
    <%
    for( int i=0;i<comments.size();i++){
    out.print("<li>" + (String) comments.get(i) + "</li>\n");
    }//for
    %>
    </tr>
    <tr>
    <td>nom</td>
    <td>
    <%
    for( int i=0;i<nom.size();i++){
    out.print("<li>" + (String) nom.get(i) + "</li>\n");
    }//for
    %>
    </tr>
    <tr>
    <td>id</td>
    <td>
    <%
    for( int i=0;i<id.size();i++){
    out.print("<li>" + (String) id.get(i) + "</li>\n");
    }//for
    %>
    </tr>
    </table>
    </body>
    </html>
    This is how i used to create an XML file in a JSP page only without JSP/SERVLET concept:
    <%@ page import="java.sql.*" %>
    <%@ page import="java.io.*" %>
    <%
    // Identify a carriage return character for each output line
    int iLf = 10;
    char cLf = (*char*)iLf;
    // Create a new empty binary file, which will content XML output
    File outputFile = *new* File("C:\\Users\\user\\workspace1\\demo\\WebContent\\YourFileName.xml");
    //outputFile.createNewFile();
    FileWriter outfile = *new* FileWriter(outputFile);
    // the header for XML file
    outfile.write("<?xml version='1.0' encoding='ISO-8859-1'?>"+cLf);
    try {
    // Define connection string and make a connection to database
    Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/SAMPLE","app","app");
    Statement stat = conn.createStatement();
    // Create a recordset
    ResultSet rset = stat.executeQuery("Select * From posts");
    // Expecting at least one record
    *if*( !rset.next() ) {
    *throw* *new* IllegalArgumentException("No data found for the posts table");
    outfile.write("<Table>"+cLf);
    // Parse our recordset
    // Parse our recordset
    *while*(rset.next()) {
    outfile.write("<posts>"+cLf);
    outfile.write("<postname>" + rset.getString("postname") +"</postname>"+cLf);
    outfile.write("<comments>" + rset.getString("comments") +"</comments>"+cLf);
    outfile.write("</posts>"+cLf);
    outfile.write("</Table>"+cLf);
    // Everything must be closed
    rset.close();
    stat.close();
    conn.close();
    outfile.close();
    catch( Exception er ) {
    %>

    Please state your problem that you are having more clearly so we can help.
    I looked at your code I here are a few things you might consider:
    It looks like you are putting freely typed-in comments from end-users into an xml document.
    The problem with this is that the user may enter characters in his text that have special meaning
    to xml and will have to be escaped correctly. Some of these characters are less than character, greater than character and ampersand character.
    You may also have a similiar problem displaying them on your JSP page since there may be special characters that JSP has.
    You will have to read up on how to deal with these special characters (I dont remember what the rules are). I seem to recall
    if you use CDATA in your xml, you dont have to deal with those characters (I may be wrong).
    When you finish writing your code, test it by entering all keyboard characters to make sure they are processed, stored in the database,
    and re-displayed correctly.
    Also, it looks like you are putting business logic in your JSP page (creating an xml file).
    The JSP page is for displaying data ONLY and submitting back to a servlet. Put all your business logic in the servlet. Putting business logic in JSP is considered bad coding and will cause you many hours of headache trying to debug it. Also note: java scriptlets in a JSP page are only run when the JSP page is compiled into a servlet by java. It does not run after its compiled and therefore you cant call java functions after the JSP page is displayed to the client.

Maybe you are looking for

  • Adobe has 'SECURED' itself! How do I 'un-SECURE' it?

    My adobe reader had an issue - it couldn't save. Then it shut itself down. When I re-opened the program, every document now comes up as 'SECURE'. This means, I can't add text or my signature to ANY document. How can I 'un-SECURE' my adobe reader so t

  • Lightroom 4.3 64 bit will not install on my Win 8 computer (Tried the vista fix)

    Hey all. Title says most of it. I have also tried running as admin and installing to my desktop, to no avail. Here is the screen it gets stuck on http://img20.imageshack.us/img20/8803/tgooooooo.png Help? =(

  • Iphone bluetooth file transfer

    Can someone kindly help and let me know if its possible to send a file (a picture or a video file) from a bluetooth enabled mobile phone to the iphone. Tried doing the same but the iphone does'nt recognise any other device (like a bluetooth enabled m

  • Replacing frames with css

    I have a site with a homepage using frames. Clicking on a link in the left frame brings up the requested document in the right frame (by using the target attribute of the anchor tag). If I try doing this with css - each frame will now be a separate d

  • Syncing Tasks From Outlook 2010

    Can anyone recommend an app that will sync my Outlook 2010 Task List with an iPad and iPhone?  So far, there doesn't seem to be anything that works with Outlook 2010. Thanks for any advice.