DECLARE
xsldoc XMLTYPE
:= xmltype (
'<?xml version="1.0" encoding="iso-8859-15"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<xsl:output method="xml" version="1.0" encoding="iso-8859-15" indent="no"/>
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Styles>
<Style ss:ID="h">
<Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>
</Style>
</Styles>
<xsl:apply-templates/>
</Workbook>
</xsl:template>
<xsl:template match="ROWSET">
<Worksheet ss:Name="{@CONSTANT}">
<Table>
<Row>
<xsl:for-each select="ROW[1]/*">
<Cell ss:StyleID="h">
<Data ss:Type="String">
<xsl:value-of select="translate(local-name(), ''_'', '' '')"/>
</Data>
</Cell>
</xsl:for-each>
</Row>
<xsl:apply-templates/>
</Table>
<x:WorksheetOptions>
<x:FrozenNoSplit/>
<x:SplitHorizontal>1</x:SplitHorizontal>
<x:TopRowBottomPane>1</x:TopRowBottomPane>
<x:ActivePane>2</x:ActivePane>
<xsl:if test="@COLOR">
<x:TabColorIndex><xsl:value-of select="@COLOR"/></x:TabColorIndex>
</xsl:if>
</x:WorksheetOptions>
</Worksheet>
</xsl:template>
<xsl:template match="ROW">
<Row>
<xsl:apply-templates/>
</Row>
</xsl:template>
<xsl:template match="ROW/*">
<Cell>
<Data ss:Type="String">
<xsl:value-of select="."/>
</Data>
</Cell>
</xsl:template>
</xsl:stylesheet>');
xmldoc CLOB;
xmldoc1 CLOB;
BEGIN
SELECT XMLTRANSFORM (
XMLELEMENT (
"ROOT",
XMLAGG (
XMLELEMENT (
"ROWSET",
xmlattributes (1 AS "CONSTANT"),
XMLAGG (
XMLELEMENT ("ROW",
XMLELEMENT ("ID", A),
XMLELEMENT ("Job", 1)))))),
xsldoc).getclobval ()
INTO xmldoc
FROM (SELECT 1 A FROM DUAL
UNION ALL
SELECT 2 FROM DUAL)
GROUP BY 1;
DBMS_XSLPROCESSOR.clob2file (xmldoc,
'DIR',
'tst.xls',
NLS_CHARSET_ID ('UTF8'));
SELECT XMLTRANSFORM (
XMLELEMENT (
"ROOT",
XMLAGG (
XMLELEMENT (
"ROWSET",
xmlattributes (1 AS "CONSTANT"),
XMLAGG (
XMLELEMENT ("ROW",
XMLELEMENT ("ID", A),
XMLELEMENT ("Job", 1)))))),
xsldoc).getclobval ()
INTO xmldoc
FROM (SELECT 3 A FROM DUAL
UNION ALL
SELECT 4 FROM DUAL)
GROUP BY 1;
DBMS_XSLPROCESSOR.clob2file (xmldoc,
'DIR',
'tst.xls',
NLS_CHARSET_ID ('UTF8'));
END;
How to get below output in a single worksheet?
ID Job
1 1
2 1
ID Job
3 1
4 1
now getting
A Job
3 1
4 1