Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Couple of questions about XML

kiber1265Jul 8 2010 — edited Jul 13 2010
Hi,

Have couple of problems with XML:
1. How to eliminate first newline. Take a look at SQL*Plus SET parameters closer?
2. How to eliminate newlines after every 80 symbols (SET LINESIZE 2000 maximum don't work). Use ClOBs?
3. I see some extra symbols in names which cause xsl run to fail with LPX-00200: could not convert from encoding UTF-8 to UCS2. How to deal with them? I already tried XMLCDATA.

I try to make code below works as a script run:
SET LONG 20000000
SET LONGCHUNKSIZE 20000000
SET FEEDBACK OFF
SET HEADING OFF
spool report.xml
select '<?xml version="1.0" encoding="UTF-8"?>'||XMLElement("Report", XMLAgg(ReportView)) AS EntireDoc from (
select ReportView from    
    (SELECT XMLElement("View", XMLAgg(XMLElement("Step", XMLAttributes(stepname AS "Stepname", SUM(obj_count) AS "TotalCount"), 
                XMLAgg(XMLElement("StepDetail", XMLElement("WorkOrder", wo_name), XMLElement("Count", obj_count)) 
                    ORDER BY wo_name
                    )))) AS ReportView
    FROM wo_object
    group by stepname
    order by stepname));    
spool off
exit
It returns output:
<?xml version="1.0" encoding="UTF-8"?><Report><View><Step Stepname="AL009
" TotalCount="36"><StepDetail><WorkOrder>MONTELIN01.01341545_2 EDICION</WorkOrde
r><Count>1</Count></StepDetail><StepDetail><WorkOrder>SDE.DEFAULT</WorkOrder><Co
unt>35</Count></StepDetail></Step><Step Stepname="AL012" TotalCount="367"><StepD
etail><WorkOrder>SDE.DEFAULT</WorkOrder><Count>332</Count></StepDetail><StepDeta
il><WorkOrder>T099372.5908440</WorkOrder><Count>2</Count></StepDetail><StepDetai
l><WorkOrder>T105016.1348784</WorkOrder><Count>2</Count></StepDetail><StepDetail
<WorkOrder>VDSATEL1.5842735</WorkOrder><Count>2</Count></StepDetail><StepDetail
<WorkOrder>VDSATEL2.05822364</WorkOrder><Count>12</Count></StepDetail><StepDeta
il><WorkOrder>ZGZSATEL2.5854594</WorkOrder><Count>1</Count></StepDetail><StepDet ail><WorkOrder>ZGZSATEL2.5858610</WorkOrder><Count>7</Count></StepDetail><StepDe tail><WorkOrder>ZGZSATEL2.5869832</WorkOrder><Count>3</Count></StepDetail><StepD etail><WorkOrder>ZGZSATEL2.5871126</WorkOrder><Count>6</Count></StepDetail></Ste p><Step Stepname="AL017" TotalCount="510"><StepDetail><WorkOrder>SDE.DEFAULT</Wo rkOrder><Count>391</Count></StepDetail><StepDetail><WorkOrder>T099372.5908440</W orkOrder><Count>2</Count></StepDetail><StepDetail><WorkOrder>T105016.1348784</Wo rkOrder><Count>2</Count></StepDetail><StepDetail><WorkOrder>VDSATEL1.5842735</Wo rkOrder><Count>24</Count></StepDetail><StepDetail><WorkOrder>VDSATEL2.05822364</ WorkOrder><Count>38</Count></StepDetail><StepDetail><WorkOrder>ZGZSATEL2.5854594 </WorkOrder><Count>1</Count></StepDetail><StepDetail><WorkOrder>ZGZSATEL2.585861 0</WorkOrder><Count>22</Count></StepDetail><StepDetail><WorkOrder>ZGZSATEL2.5867 594</WorkOrder><Count>3</Count></StepDetail><StepDetail><WorkOrder>ZGZSATEL2.586 9832</WorkOrder><Count>12</Count></StepDetail><StepDetail><WorkOrder>ZGZSATEL2.5 871126</WorkOrder><Count>15</Count></StepDetail></Step><Step Stepname="AL019" To talCount="6"><StepDetail><WorkOrder>SDE.DEFAULT</WorkOrder><Count>6</Count></Ste pDetail></Step></View></Report>
I have in mind follwoing workflow:
1. Application generates log info.
2. XML report file generated based on log info from step 1.
3. Based on XSL file transform XML report file from step 2 to HTML report.

I like to do it that way to separate data generation and data representation.

PS: I know solution is somewhere close, but can not gaspe it.

Thanks,
Sergiy
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 10 2010
Added on Jul 8 2010
5 comments
1,097 views