How to generate XML nested using PL/SQL data?

I have an XML that looks like this file...

<? XML version = "1.0"? >
< TDefs >
< ListItem >
< TDef >
< DisplayName > AFP < / DisplayName >
< enabled > True < / enabled >
< LISName > AFP < / LISName >
< LOINC / >
< PrintName > AFP < / PrintName >
< CompatibilityCode > 1 < / CompatibilityCode >
< details >
< PatientReplicates > 1 < / PatientReplicates >
< AutoReDilute > false < / AutoReDilute >
< / details >
< DilutionList >
< TDefDilution >
< dilution > 1 < / Dilution >
< CalculationFactor > 1 < / CalculationFactor >
< / TDefDilution >
< / DilutionList >
< TDefRange >
< RangeList >
< RangeInfo >
< ID >
< int > 6509 < / int >
< /ID >
< name >
< string > check Range2 < / string >
< / name >
< Name_MessageID >
< int >-1 < / int >
< / Name_MessageID >
< IsNull RepeatedlyReactiveData = "true" / >
< IsNull RepeatedlyReactiveComments = "true" / >
< CreatedByIM >
< Boolean > true < / Boolean >
< / CreatedByIM >
< / RangeInfo >

This is data that are from different tables. It is a multilevel nested nodes each other.
How do I achieve using PL/SQL? What is the best way?

I've only used to date dbms_xmlgen to generate data from a single table.
Can anyone help?

How do I achieve using PL/SQL? What is the best way?

SQL/XML functions.

For example: {message identifier: = 9670705}

After a few data structures and table (DDL) samples if you need specific help on the query.

Tags: Database

Similar Questions

  • In general, is it better to use java.sql.Date and java.sql.Timestamp instead of oracle.jbo.domain.Date?

    Hello world

    During playback of Oracle ADF Real World Developer's Guide, I noticed the dates match occurring in JDeveloper is different from what is the list in the book. JDeveloper is failing to oracle.jbo.domain.Date, but according to the book:

    DATEjava.sql.DateDATE type is mapped to java.sql.Date if the column in the table is a no time didn't need information zone.
    DATEjava.sql.TimestampDATE type is mapped to java.sql.Timestamp if the column in the table has a component "time" and that the client needs to zone information.
    TIMESTAMPjava.sql.TimestampThe TIMESTAMP type is mapped to java.sql.Timestamp if nanosecond precision is used in the database.

    In general, is it better to use java.sql.Date and java.sql.Timestamp instead of oracle.jbo.domain.Date? Using java.sql.Date and java.sql.Timestamp could save me some headaches conversion date. And, is there a place in JDeveloper to display these maps? I looked around and didn't see anything.

    Thank you.

    James

    User, what version of jdev we are talking about?

    In GR 11, 1 material versions db types date and timestamp are mapped to types of domain data that represents a wrapper for the native data types. The reason was that the framework can work with the domain types regardless of the underlying data type.

    Since Oracle 11 GR 2 maps the types DB to java types (default selection, you can change it when you create a model project, you can set the Data Type Mapping). Once the pilot has business components define you cannot change this setting it would break existing components such as eo or vo.

    So if you are working wit 11 GR 1 subject, you must use the domain types, if you work with GR 11, 2 or 12 c, you can use the domain types, but it is recommended to use the java type mapping.

    Timo

  • How to generate XML from database data using a procedure?

    Hello

    I want to generate output as xml to database tables using a procedure. Can anyone suggest me on how to do this?

    Thanks for your time.

    Reel for the XML script

  • How the XML element used in RTF PUBLIC/PRIVATE? I know how to hide columns in RTF, but do not know how to generate xml below way. Help, please.

    Hello

    I'm following link below to show/hide my columns dynamically. See "formatting of column.

    http://docs.Oracle.com/CD/E12844_01/doc/BIP.1013/e12187.PDF

    According to the doc element can be made in private/public.

    <items type="PUBLIC">
     <item>
      <name>Plasma TV</name>
      <quantity>10</quantity>
      <price>4000</price>
     </item>
     <item>
    

    And even can be used to hide the column with the help of State

    <?if@column:/items/@type="PUBLIC"?>
    

    MY QUESTION IS HOW TO DO THIS IN MY XML BELOW?

    Here's the part of my XML code that I use in the definition of the data to RTF.

    <group name="GH3" source="QH3">
    <element name="COLUMN_HEAD3" value="COLUMN_NAME" /> 
    </group>
    <group name="GH4" source="QH4">
    <element name="COLUMN_HEAD4" value="COLUMN_NAME" /> 
    </group>
    

    I'm out like that.

    <LIST_GH3>
    <GH3>
    <COLUMN_HEAD3>REBILL_TO_OTHER_BUSINESS_UNIT</COLUMN_HEAD3>
    </GH3>
    </LIST_GH3>
    <LIST_GH4>
    <GH4>
    <COLUMN_HEAD4>XYZ</COLUMN_HEAD4>
    </GH4>
    </LIST_GH4>
    

    In order to use the logic according to the oracle document I want output like this.

    <LIST_GH3 type="PUBLIC">
    <GH3>
    <COLUMN_HEAD3>REBILL_TO_OTHER_BUSINESS_UNIT</COLUMN_HEAD3>
    </GH3>
    </LIST_GH3>
    <LIST_GH4 type="PRIVATE">
    <GH4>
    <COLUMN_HEAD4>BLANK</COLUMN_HEAD4>
    </GH4>
    </LIST_GH4>
    

    Should what changes I make in my XML to get the result of the execution as above? Help, please. Where should I make changes in the XML above? Name of the Group? Name of the element?

    I intend to use it under condition in RTF model to hide the column, but do not know how to set the column as PRIVATE/PUBLIC type in the XML output that is used to populate the data in the RTF while running.

    <?if@column:/BTSPIEXP/LIST_GH3/@type=”PUBLIC”?>COLUMN_HEAD3<?end if?>
    

    Kind regards

    Patricia K.

    Hello

    Problem has been resolved. I used the value of the item to determine whether to show it.

    Kind regards

    Patricia K.

  • How to generate QML objects using javascript?

    Hello

    I'm trying to generate new labels whenever the information is changed. I am aware of generate and load XML. However, I am looking for a way alternative simple generate labels or other objects using javascript. How to do this?

    This page contains an example to create components dynamically:

    http://developer.BlackBerry.com/Cascades/reference/bb__cascades__qmlcomponentdefinition.html

  • How to remove xml xmlns using java

    Hello


    < DLList xmlns = "http://www.test.com/integration/feed" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" >
    < weather >
    Karnataka < StateName > < / StateName >
    < ForecastName > Bagalkote < / ForecastName >
    < > 89.9 humidity < / humidity >
    < / weather >
    < weather >
    Karnataka < StateName > < / StateName >
    < ForecastName > Devengiri < / ForecastName >
    < > 89.9 humidity < / humidity >
    < / weather >
    < / DLList >

    The above xml code must be decomposed using xsu. I am facing a problem because the XML contains namespaces.
    How to remove namespace using java to get the xml below
    Note: I use XSLT for transformation. The tag XSLT is not to identify the < DLList > tag with namespace

    < DLList >
    < weather >
    Karnataka < StateName > < / StateName >
    < ForecastName > Bagalkote < / ForecastName >
    < > 89.9 humidity < / humidity >
    < / weather >
    < weather >
    Karnataka < StateName > < / StateName >
    < ForecastName > Devengiri < / ForecastName >
    < > 89.9 humidity < / humidity >
    < / weather >
    < / DLList >

    Help, please. Let me know if any other information is required
    Thank you

    Hello

    Here is a small test case that works with xsu12:

    test_xsu.XML:

    
    
    Karnataka
    Bagalkote
    89.9
    
    
    Karnataka
    Devengiri
    89.9
    
    
    

    test_xsu.xsl:

    
    
      
        
          
        
      
      
        
          
            
          
          
            
          
          
            
          
        
      
    
    

    Java class Test_xsu:

    import java.io.*;
    import oracle.xml.sql.dml.*;
    import java.sql.*;
    import oracle.jdbc.*;
    
    public class test_xsu
    {
      public static void entry()
      throws SQLException, FileNotFoundException
      {
       int rowCount;
    
       Connection conn = DriverManager.getConnection("jdbc:default:connection:");
       OracleXMLSave save = new OracleXMLSave(conn, "TEST_XSU");
    
       Reader xsltReader = new FileReader(new File("c:\\ora11\\test\\test_xsu.xsl"));
       Reader xmlReader = new FileReader(new File("c:\\ora11\\test\\test_xsu.xml"));
    
       save.setXSLT(xsltReader, null);
       save.setRowTag("Weather");
    
       rowCount = save.insertXML(xmlReader);
    
       save.close();
    
      }
    }
    

    For personal reasons, I call the class through a java stored procedure directly from the database (which shouldn't make a difference):

    SQL> create table test_xsu
      2  (
      3   state varchar2(30),
      4   district_name varchar2(30),
      5   humidity number
      6  );
    
    Table created
    
    SQL>
    SQL> create procedure p_test_xsu
      2  as language java name 'test_xsu.entry()';
      3  /
    
    Procedure created
    
    SQL> exec p_test_xsu;
    
    PL/SQL procedure successfully completed
    
    SQL> select * from test_xsu;
    
    STATE                          DISTRICT_NAME                    HUMIDITY
    ------------------------------ ------------------------------ ----------
    Karnataka                      Bagalkote                            89,9
    Karnataka                      Devengiri                            89,9
     
    
  • How to generate 3 Wick using digital signals

    Hello

    I am in the course of generations bit 3 digital using 9403 digital module and cRIO 9014.I signal must generate all combinations from 000 to 111.la so I have to give the Boolean constant either true or false 9403.I output module'm not gettimg how incrase step value of 000 001 and so on... Should I use the shift register?

    I know how to use the registry to offset for integer value bt I don't hv any idea on the Boolean value.

    in the hope of solution...

    Here is a small example that uses the number to array of Boolean function.  The digital indicator has its display of the binary value (%b) formatting.

  • How to write queries nested using the DB adapter?

    I want to write a request nested by using the help DB adapter box...

    SELECT INVOICE_ID, FILE_NAME IN BILLING_INVOICE_PDF_V where FILE_ID =)

    (SELECT MAX (FILE_ID) FROM BILLING_INVOICE_PDF_V WHERE (INVOICE_ID = '12345'))) ;

    Thank you

    RAM.

    Hi Ram,

    It's probably the semicolon at the end of the SQL statement that causes the db adapter for error; Simply enter the SQL custom without a semicolon at the end.

    SELECT INVOICE_ID, FILE_NAME IN BILLING_INVOICE_PDF_V where FILE_ID = (SELECT MAX (FILE_ID) OF BILLING_INVOICE_PDF_V WHERE INVOICE_ID = '12345')

  • How to generate xml with CDATA from a query

    I have the following query
    with data_tab as ( select 'Geetha' "code" ,'Book' "category" from dual union            
    select 'Nokia' "code" ,'mobile' "category" from dual )
    select Xmltype(cursor(select * from data_tab)) from dual
    and the output is
    <?xml version="1.0"?>
    <ROWSET>
     <ROW>
      <code>Geetha</code>
      <category>Book</category>
     </ROW>
     <ROW>
      <code>Nokia</code>
      <category>mobile</category>
     </ROW>
    </ROWSET>
    but I want to insert ot XML CDATA.
    Is that I need this xml file in the following format.
    <?xml version="1.0"?>
    <ROWSET>
     <ROW>
      <code>![CDATA[Geetha]]</code>
      <category>![CDATA[Book]]</category>
     </ROW>
     <ROW>
      <code>![CDATA[Nokia]]</code>
      <category>![CDATA[mobile]]</category>
     </ROW>
    </ROWSET>
    Please help me on this. In my original query, I am selecting from a record type, and it is nested. So I can not change the query select * from data_tab

    Manjusha Muraleedas wrote:
    Is there another solution.

    Well, Yes and no...

    No, because a CDATA section is supposed to be built directly on the data source, so that the content is preserved as is, with no escaped character.
    Yes, you can transform the XML to add CDATA sections thereafter, but what would be the point? The XMLType constructor already still escaped characters that are not valid.

    Out of curiosity, why do you require CDATA instead of escape sequences?

  • How to access Mobile Oracle using PL/SQL Server logs?

    I started using Oracle solutions, so I'm a complete newbie.

    I am doing a project which requires to newspapers to mobile devices using the Oracle Mobile Server (integrated into Oracle Database Lite).
    The mobile server has services that I could use or do I interpret log files?

    Thanks in advance for all support!

    Published by: Hugo Zenha on April 15, 2009 07:40

    Details of base for sync history is MOBILEASDMIN. C$ SYNC_HISTORY. This will give you the id of the customer (name), start and end times, success or failure (and error if failure) as well as the total volume of data uploaded and downloaded.

    You can get more details by joining with c$ sync_his_pub_items on session_id, and this gives details of each downloaded table (phase = UPLOAD) regarding the timings and records and the same for the download. Upload tends to be the complete set of tables (records = 0 for no activity), while the download is only active tables and includes a full refresh occurred

    You can get information for the MGP process via mgp_history c$ and c$ mgp_his_clients

    As all the repository data is stored in the database, there are a lot of possibly interesting things if you look through it.

    We use SQL and PL/SQL to make reports on different users with clocks in a loading time and identification of customers having problems

  • How to call the nested in the SQL table collection

    Please see the example below, how to attach the collection vmi_emp with history_emp table

    CREATE or REPLACE type vmi_emp as an object

    (empno varchar2 (500),)

    Ename varchar2 (500),

    HireDate date,

    SAL number (20));

    CREATE or REPLACE type nested_emp is table of the vmi_emp;

    declare

    v_type nested_emp;

    Start

    Select vmi_emp (empno, ename, hiredate, sal)

    bulk collect into v_type from emp;

    ???????????????? Select * from history_emp a, b vmi_emp where a.empno = b.empno

    end loop;

    end;

    Select * from history_emp has, b table (v_type) where a.empno = b.empno

  • How to get XML of a node name data?

    I'm new to Flash and XML, so I hope I'm not asking a stupid question. I understood how to retrieve data from and by the position of the node XML file, but now I would like to know how to pull a specific node name. Here is what I currently have:

    about (overview)
    {
    myLot = 1;
    _root.myInfo = _root.myXML.childNodes [0] Sublst.ChildNodes(1).ChildNodes(0) [this.myLot] Sublst.ChildNodes(1).ChildNodes(0) [0] Sublst.ChildNodes(1).ChildNodes(0) [0] .nodeValue;
    }

    With the file XML as follows:
    < SectionOne >
    < Lot1 >
    < Batch > 1 < / batch >
    < price >$ 450 000 < / price >
    Assets of < status > < / status >
    < / Lot1 >
    < Lot4 >
    < Batch > 4 < / batch >
    < price >$ 389 000 < / price >
    Sold < status > < / status >
    < / Batch2 >
    < / SectionOne >

    What I would like is to shoot instead of childNodes [this.myLot] to get the node named Lot1. The problem I have is I have always not consecutive lots and I don't want to have to build a placeholder empty xml online. I hope that makes sense.

    Sorry for the delay. I posted this on the discussion group, but I guess that it does not spread here.

    What you would do, is to use a loop statement and compare the nodeNames.
    To see a name of nodes as Lot1, you use:
    childNodes [x] .nodeName

    ******************************************
    Load the lotNodes object
    lotNodes = _root.myXML.childNodes [0];
    LotNodes contains now all Lot0, Lot1, batch2 nodes...
    Browse all childNodes lotNodes and compare the
    nodeName until you find the one you want then go down
    He has to get the information you want.
    for (var counter01 = 0; counter01<>
    If (lotNodes.childNodes [counter01] .nodeName == "Batch1") {}
    myInfo = lotNodes.childNodes [counter01] Sublst.ChildNodes(1).ChildNodes(0) [0] Sublst.ChildNodes(1).ChildNodes(0) [0] .nodeValue;
    }
    }
    ******************************************
    I don't have time to test it but it should work, I'll check double after work.
    I hope that this help you move forward.
    If you have any other problems or can't make it work, I would like to know here or send me an email. Preference here, so that others can learn and help.

    Scotty
    [email protected]

  • How to READ XML and display hirarechy and data in separate columns 2

    Hi, I have the following XML example and I need to extract the hirarechy and values separately. If the value is null, hirarechy must be displayed. Please advice!
    for example,.
    I want to output something this link

    NŒUD
    ---------------------------
    8. TEST4. FIVE
    8. TEST4. SIX
    8. TEST4. 7. TEST2. TWO
    8. TEST4. 7. TEST2. THREE



    VALUE
    ------------------------------------
    1

    5
    I test m


    example of XML data:

    <? XML version = "1.0"? >
    rowset <>
    < ROW >
    < 8 >
    < TEST4 >
    < 5 > 1 < / FIVE >
    < 6 / >
    < 7 >
    < TEST2 >
    < TWO > 5 < / TWO >
    test of m i < 3 > < / 3 >
    < 4 >
    < A > 26 March 12 < / ONE >
    < / OVEN >
    < / TEST2 >
    < / SEVEN >
    < / TEST4 >
    < TEST4 >
    < 5 > 1 < / FIVE >
    < SIX > 26 March 12 < / SIX >
    < 7 >
    < TEST2 >
    < TWO > 5 < / TWO >
    < 3 > 67 < / 3 >
    < 4 >
    < A > 26 March 12 < / ONE >
    < / OVEN >
    < / TEST2 >
    < / SEVEN >
    < / TEST4 >
    < / 8 >
    < / ROW >
    < / LINES >

    Thank you

    Published by: Saad at March 26, 2012 15:18

    What is xml_test in your example? his error on this one.

    This is a table of xmltype object I used to store your XML for my first tests.
    Sorry, I forgot to remove the part while testing with a variable binding in place.

    Try this one (pass your real xmltype variable instead of xmltype(:xmldoc)):)

    SELECT x.node_id
         , x.node_value
    FROM XMLTable(
         'declare function local:getChildren($e as node(), $pID as xs:string?) as element()*
          {
            for $i in $e/(child::*|attribute::*)
            let $ID := if ($pID) then concat($pID,".",name($i)) else name($i)
            return element r
            {
              attribute is_leaf {empty($i/child::*)}
            , element node_id {$ID}
            , element parent_node_id {$pID}
            , element node_name {name($i)}
            , if ($i instance of attribute())
                then ( element node_value {data($i)}, element node_kind {"attribute"} )
                else ( element node_value {$i/text()}, element node_kind {"element"} )
            }
            | local:getChildren($i,$ID)
          }; (: :)
          local:getChildren($d/ROWSET/ROW,())'
          passing xmltype(:xmldoc) as "d"
          columns node_id         varchar2(100)   path 'node_id'
                , node_name       varchar2(30)    path 'node_name'
                , node_value      varchar2(2000)  path 'node_value'
                , parent_node_id  varchar2(100)   path 'parent_node_id'
                , node_kind       varchar2(30)    path 'node_kind'
                , is_leaf         varchar2(5)     path '@is_leaf'
         ) x
    WHERE is_leaf = 'true'
    ;
    
  • using pl/sql - date time

    Hi friends;

    I have two variables with the date as follows.

    ' date of v_login: = ' 2013 - 08 - 01 08:34;

    ' date of v_logoff: = ' 2013 - 08 - 01 11:10;

    I need to get the time difference to these two variables, such as ventilation. (breakdown by hour)

    TIME DURATION (min)

    ----------    -----------------------

    8-26 - difference between 09:00 and 08:34 minutes

    9 60 - difference between 10:00 and 09:00 minutes

    10 60 - difference between 11:00 and 10:00 minutes

    11-10 - difference between 11:10 and 11:00 minutes

    y at - it an easy way to get this output ?

    Concerning

    Vish

    Hello

    and here's a SQL solution

    with dates in the form

    (

    Select to_date ('2013-08-01 08:34 ', 'yyyy-mm-dd HH24') login_date

    , to_date ('2013-08-01 11:10 ', 'yyyy-mm-dd HH24') logoff_date

    of the double

    )

    Select to_char (trunc(login_date + (level-1)/24, 'HH'), "HH24") HR

    , trunc ((less (trunc(login_date + (level)/24, 'HH'), trunc (logoff_date, 'MI'))))

    ((-more great (trunc(login_date + (level-1)/24, 'HH'), trunc (login_date 'MI'))) * 24 * 60) diff

    of dates

    connect by level<=  (trunc(logoff_date-1/24/3600,="">

    (-trunc (login_date, 'HH')) * 24 + 1;

    HR DIFF

    -- ----------

    08 26

    09 60

    10 60

    11 10

    I have seen where session closing time ends at the time exact (i.e. 11:00) you don't want to show the last line:

    with dates in the form

    (

    Select to_date ('2013-08-01 08:34 ', 'yyyy-mm-dd HH24') login_date

    , to_date ('2013-08-01 11:00', 'yyyy-mm-dd HH24') logoff_date

    of the double

    )

    Select to_char (trunc(login_date + (level-1)/24, 'HH'), "HH24") HR

    , trunc ((less (trunc(login_date + (level)/24, 'HH'), trunc (logoff_date, 'MI'))))

    ((-more great (trunc(login_date + (level-1)/24, 'HH'), trunc (login_date 'MI'))) * 24 * 60) diff

    of dates

    connect by level<=  (trunc(logoff_date-1/24/3600,="">

    (-trunc (login_date, 'HH')) * 24 + 1;

    HR DIFF

    -- ----------

    08 26

    09 60

    10 60

    Kind regards.

    Al

  • How to set default cell format 'text' instead of 'general' sheet in excel using pl/sql code?

    Can someone please help me on how to generate excel file using pl/sql? I have generated csv files successfully, but now I need to generate a excel. I changed the code generation of the csv file, but the file gives me error when opening:

    "The file you are trying to open,"XXXX.xls", is in a different format than specified by the file extension. Do you want to open it now? »

    If I choose Yes then open the excel file, but it excludes the leading 0 in the front for one my column. How do I configure excel type default column as text rather than General, when you create the files? I also tried to generate excel file using xml. But I do not know how to set the type of column there, too. I'm using Oracle 11.2.0.3.0 and APEX 4.2.6.00.03. I'll call all these codes apex.

    Code1 is used:

    Declare

    output_header varchar2 (4000);

    fichier_en_sortie VARCHAR2 (255);

    Varchar2 (2) EOL: = Chr (13) | Chr (10);

    BEGIN

    output_header: = 'tls_tracking_id ' | Chr (9) | ' fnn_ext' | Chr (9) | "path_id' | EOL;

    fichier_en_sortie: = 'report_excel' |'. XLS;

    owa_util.mime_header ("application/octet ', false");

    HTP.p ('Content-Disposition: attachment; filename = "" | ") fichier_en_sortie |' « ') ;

    owa_util.http_header_close;

    HTP. PRN (output_header);

    for r in)

    Select tls_tracking_id, fnn_ext, DWD_DTOV_OUT_VW path_id

    where nbn_loc_id = 'LOC000138413115. '

    The order of tls_tracking_id LOOP)

    HTP. PRN (r.tls_tracking_id

    || Chr (9) | r.fnn_ext

    || Chr (9) | r.path_id

    || EOL

    );

    END LOOP;

    END;

    Code2 used :

    create or replace PACKAGE BODY IS pkg_excel_export

    PROCEDURE excel_open (l_xml_body IN OUT NOCOPY CLOB) IS

    BEGIN

    l_xml_body: = ' <? XML version = "1.0" encoding = "ISO-8859-9"? > ' | Chr (10) |

    "< workbook xmlns =" "urn: schemas-microsoft - com:office:spreadsheet" ' | "

    Chr (10) |

    ""xmlns:o ="urn: schemas-microsoft-com ' ' |

    Chr (10) |

    "xmlns: x =" "urn: schemas-microsoft-com: excel" ' | "

    Chr (10) |

    ""xmlns:ss ="urn: schemas-microsoft - com:office:spreadsheet" ' |

    Chr (10) |

                            'xmlns:html=" http://www.w3.org/TR/REC-html40 ">' ||

    Chr (10) |

    ' < ExcelWorkbook xmlns = "urn: schemas-microsoft-com: excel" > ' |

    Chr (10) | ' < WindowHeight > 8580 < / WindowHeight > ' |

    Chr (10) | ' < WindowWidth > 15180 < / WindowWidth > ' | Chr (10) |

    ' < WindowTopX > 120 < / WindowTopX > ' | Chr (10) |

    ' < WindowTopY > 45 < / WindowTopY > ' | Chr (10) |

    ' < ProtectStructure > false < / ProtectStructure > ' | Chr (10) |

    ' < ProtectWindows > false < / ProtectWindows > ' | Chr (10) |

    ' < / ExcelWorkbook > ' | Chr (10) | "< Styles > | Chr (10) |

    '< ss:ID of style = 'Default' ss:Name 'Normal' = >' | Chr (10) |

    "< ss:Vertical alignment = 'Bottom' / >" | " Chr (10) |

    ' < borders / > '. Chr (10) | ' < police / > '. Chr (10) |

    ' < Interior / > '. Chr (10) | ' < NumberFormat / > '. Chr (10) |

    ' < protection / > '. Chr (10) | "< / style > | Chr (10) |

    '< ss:ID of style 's22' = >' | Chr (10) |

    "< x: font family = ss"Swiss":"BOLD"="1"ss:Underline ="Single"/ >" | "

    Chr (10) | "< / style > | Chr (10) | "< / style >";

    END excel_open;

    PROCEDURE excel_close (l_xml_body IN OUT NOCOPY CLOB) IS

    BEGIN

    l_xml_body: = l_xml_body | ' < / workbook > ';

    END excel_close;

    / * Opens a worksheet in the Excel file. , You can open multiple worksheets. **/

    PROCEDURE worksheet_open

    (

    l_xml_body IN OUT NOCOPY CLOB,

    p_worksheetname in VARCHAR2

    ) IS

    BEGIN

    --

    -Create the worksheet

    --

    l_xml_body: = l_xml_body | "' < worksheet ss:Name = ' ' | p_worksheetname |

    "" > < table > ";"

    END worksheet_open;

    / *Farm the worksheet in the Excel file.   **/

    PROCEDURE worksheet_close (l_xml_body IN OUT NOCOPY CLOB) IS

    BEGIN

    l_xml_body: = l_xml_body | ' < / table > < / worksheet > ';

    END worksheet_close;

    / *Opens the tag line * /

    PROCEDURE row_open (l_xml_body IN OUT NOCOPY CLOB) IS

    BEGIN

    l_xml_body: = l_xml_body | "< row >."

    END row_open;

    / *Farm the tag line * /.

    PROCEDURE row_close (l_xml_body IN OUT NOCOPY CLOB) IS

    BEGIN

    l_xml_body: = l_xml_body | "< / row > | Chr (10);

    END row_close;

    / *After the opening of the line, we can write something the first cell* /

    PROCEDURE cell_write

    (

    l_xml_body IN OUT NOCOPY CLOB,

    p_content in VARCHAR2

    ) IS

    BEGIN

    l_xml_body: = l_xml_body | ' < cell > < data ss:Type = "String" > ' |

    p_content | ' < / data > < / cell > ';

    END cell_write;

    / * If you use this package of APEX, you get to download the excel file. **/

    PROCEDURE excel_get

    (

    l_xml_body IN OUT NOCOPY CLOB,

    p_filename in VARCHAR2

    ) IS

    XX BLOB;

    make the NUMBER;

    This NUMBER;

    BC NUMBER.

    LC NUMBER;

    w NUMBER;

    BEGIN

    DBMS_LOB.CREATETEMPORARY (xx, TRUE);

    make: = 1;

    so: = 1;

    BC: = dbms_lob.default_csid;

    LC: = dbms_lob.default_lang_ctx;

    w: = dbms_lob.no_warning;

    DBMS_LOB.converttoblob (xx,

    l_xml_body,

    DBMS_LOB.lobmaxsize,

    do,

    Thus,.

    British Colombia,

    LC,

    (w);

    owa_util.mime_header ("application/octet ', FALSE");

    -set the size so that the browser knows how to download

    HTP.p ("Content-length: ' |") DBMS_LOB.GetLength (xx));

    -the name of the file will be used by the browser if users only one save as

    HTP.p ('Content-Disposition: attachment; filename = "" | ") p_filename |

    '.xls ' | '"');

    -close the headers

    owa_util.http_header_close;

    -Download the BLOB

    wpg_docload.download_file (XX);

    END excel_get;

    END pkg_excel_export;

    I know it's a bit long code, but to better understand please consider...

    Thank you.

    I did worked putting just one extra line in my l_xml_body in the XML (Code 2 used). Now my excel generates with cells type 'Text' and there are no left falling to zero. Also the columns display not scientific format as 2.3D + 12. Current recording shows without default formatting.

    '

Maybe you are looking for