Generating xml from diff tables in a db

hi,
i need to write a oracle procedure, which when called generates xml doc (building xml from different tables in database.). i got the DTDs . but i still dont understand how can the data be pulled from diff tables and put in the one xml? can anyone give me rough idea.. i know that i have to use xmlquery and xml_save packages... but still not much clear..
i m working on oracle 8i database. any help is appreciated.. thanks.

Any feedback to the above questions would be greatly appreciated!

Similar Messages

  • Generating xml from oracle table

    Hi,
    I want to generate xml form an oracle table and using sql developer, oracle express 10g, xdk forler is also unzipped under oracle express folder, still getting following error: code used
    var g_clob clob;
    declare
         l_ctx  dbms_xmlquery.ctxHandle;
         l_clob clob;
        begin
          l_ctx := dbms_xmlquery.newContext('select * from scott.emp');
          dbms_lob.createtemporary(:g_clob,true,dbms_lob.session);
          :g_clob := dbms_xmlquery.getXml(l_ctx);
        end;
        /ORA-06550: line 2, column 14:
    PLS-00201: identifier 'DBMS_XMLQUERY.CTXHANDLE' must be declared
    Thanks in advance

    Hi,
    DBMS_XMLQUERY is a wrapper for methods from the Java class "oracle.xml.sql.query.OracleXMLStaticQuery".
    The problem is that Oracle 10g XE doesn't have a JVM, so you can't use this package.
    Use DBMS_XMLGEN instead, it provides similar functionalities and is more efficient (C-based) :
    SQL> var g_clob clob
    SQL> DECLARE
      2    l_ctx    dbms_xmlgen.ctxHandle;
      3  BEGIN
      4    l_ctx := dbms_xmlgen.newContext('select * from scott.emp');
      5    :g_clob := dbms_xmlgen.getXML(l_ctx);
      6    dbms_xmlgen.closeContext(l_ctx);
      7  END;
      8  /
    PL/SQL procedure successfully completed.
    SQL> set long 5000
    SQL> set pages 1000
    SQL> print g_clob
    G_CLOB
    <?xml version="1.0"?>
    <ROWSET>
    <ROW>
      <EMPNO>7369</EMPNO>
      <ENAME>SMITH</ENAME>
      <JOB>CLERK</JOB>
      <MGR>7902</MGR>
      <HIREDATE>17/12/80</HIREDATE>
      <SAL>800</SAL>
      <DEPTNO>20</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7499</EMPNO>
      <ENAME>ALLEN</ENAME>
      <JOB>SALESMAN</JOB>
      <MGR>7698</MGR>
      <HIREDATE>20/02/81</HIREDATE>
      <SAL>1600</SAL>
      <COMM>300</COMM>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7521</EMPNO>
      <ENAME>WARD</ENAME>
      <JOB>SALESMAN</JOB>
      <MGR>7698</MGR>
      <HIREDATE>22/02/81</HIREDATE>
      <SAL>1250</SAL>
      <COMM>500</COMM>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7566</EMPNO>
      <ENAME>JONES</ENAME>
      <JOB>MANAGER</JOB>
      <MGR>7839</MGR>
      <HIREDATE>02/04/81</HIREDATE>
      <SAL>2975</SAL>
      <DEPTNO>20</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7654</EMPNO>
      <ENAME>MARTIN</ENAME>
      <JOB>SALESMAN</JOB>
      <MGR>7698</MGR>
      <HIREDATE>28/09/81</HIREDATE>
      <SAL>1250</SAL>
      <COMM>1400</COMM>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7698</EMPNO>
      <ENAME>BLAKE</ENAME>
      <JOB>MANAGER</JOB>
      <MGR>7839</MGR>
      <HIREDATE>01/05/81</HIREDATE>
      <SAL>2850</SAL>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7782</EMPNO>
      <ENAME>CLARK</ENAME>
      <JOB>MANAGER</JOB>
      <MGR>7839</MGR>
      <HIREDATE>09/06/81</HIREDATE>
      <SAL>2450</SAL>
      <DEPTNO>10</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7839</EMPNO>
      <ENAME>KING</ENAME>
      <JOB>PRESIDENT</JOB>
      <HIREDATE>17/11/81</HIREDATE>
      <SAL>5000</SAL>
      <DEPTNO>10</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7844</EMPNO>
      <ENAME>TURNER</ENAME>
      <JOB>SALESMAN</JOB>
      <MGR>7698</MGR>
      <HIREDATE>08/09/81</HIREDATE>
      <SAL>1500</SAL>
      <COMM>0</COMM>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7900</EMPNO>
      <ENAME>JAMES</ENAME>
      <JOB>CLERK</JOB>
      <MGR>7698</MGR>
      <HIREDATE>03/12/81</HIREDATE>
      <SAL>950</SAL>
      <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7902</EMPNO>
      <ENAME>FORD</ENAME>
      <JOB>ANALYST</JOB>
      <MGR>7566</MGR>
      <HIREDATE>03/12/81</HIREDATE>
      <SAL>3000</SAL>
      <DEPTNO>20</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7934</EMPNO>
      <ENAME>MILLER</ENAME>
      <JOB>CLERK</JOB>
      <MGR>7782</MGR>
      <HIREDATE>23/01/82</HIREDATE>
      <SAL>1300</SAL>
      <DEPTNO>10</DEPTNO>
    </ROW>
    </ROWSET>Or, using SQL/XML functions :
    SELECT XMLElement("ROWSET",
             XMLAgg(
               XMLElement("ROW",
                 XMLForest(empno, ename, job, mgr, hiredate, sal, comm, deptno)
           ).getClobVal()
    FROM scott.emp
    ;

  • Generate xml from a table and insert the xml into another table

    I want to generate an xml file from a table and insert it into another table all in one tsql
    insert into table B(xmlfile)
    select * from tableA
    FOR
    XML
    PATH('ac'),TYPE,ELEMENTS
    XSINIL,ROOT('Accum')
    Is not working any help

    I have solved my issue all I did was to change my column datatype to xml

  • Generate XML from Oracle Table Data

    Hi All,
    I am new to this network. I am also new to oracle XML package. I want a help for the below query.
    CREATE TABLE EMP(ID NUMBER PRIMARY KEY, NAME VARCHAR2(10), PHONE NUMBER);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (11,'Joy',1234);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (22,'Mike',5678);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (33,'Jason',NULL);
    COMMIT;
    I want to export the EMP table data in a XML file with the below format.
    Required Output:
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>11</ID><NAME>Joy</NAME></EMP></STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>22</ID><NAME>Mike</NAME></EMP></STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>33</ID><NAME>Jason</NAME></EMP></STATICDATA>
    I have used some XML functions and have written the below query.
    select XMLROOT(XMLELEMENT(staticdata,XMLELEMENT(EMP,XMLELEMENT(ID,ID),XMLELEMENT(NAME,NAME))), version '1.0" encoding="UTF-8') xml FROM EMP;
    output of my query:
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>11</ID>
    <NAME>Joy</NAME>
    </EMP>
    </STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>22</ID>
    <NAME>Mike</NAME>
    </EMP>
    </STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>33</ID>
    <NAME>Jason</NAME>
    </EMP>
    </STATICDATA>
    But i want the out as the required output above. every record in a single line. can any one help me in achieving the required output. also can i export all the columns of the table by some thing like select * from the table in XML file ?
    Thanks,
    Sartaj

    user13683418 wrote:
    Hi All,
    I am new to this network. I am also new to oracle XML package. I want a help for the below query.
    CREATE TABLE EMP(ID NUMBER PRIMARY KEY, NAME VARCHAR2(10), PHONE NUMBER);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (11,'Joy',1234);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (22,'Mike',5678);
    INSERT INTO EMP(ID,NAME,PHONE) VALUES (33,'Jason',NULL);
    COMMIT;
    I want to export the EMP table data in a XML file with the below format.
    Required Output:
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>11</ID><NAME>Joy</NAME></EMP></STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>22</ID><NAME>Mike</NAME></EMP></STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?><STATICDATA><EMP><ID>33</ID><NAME>Jason</NAME></EMP></STATICDATA>
    I have used some XML functions and have written the below query.
    select XMLROOT(XMLELEMENT(staticdata,XMLELEMENT(EMP,XMLELEMENT(ID,ID),XMLELEMENT(NAME,NAME))), version '1.0" encoding="UTF-8') xml FROM EMP;
    output of my query:
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>11</ID>
    <NAME>Joy</NAME>
    </EMP>
    </STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>22</ID>
    <NAME>Mike</NAME>
    </EMP>
    </STATICDATA>
    <?xml version="1.0" encoding="UTF-8"?>
    <STATICDATA>
    <EMP>
    <ID>33</ID>
    <NAME>Jason</NAME>
    </EMP>
    </STATICDATA>
    But i want the out as the required output above. every record in a single line.Why?
    Some things output XML all as one stream, some things naturally display it structured. It doesn't matter as the XML is still the same because by it's very nature it is a structured data definition. Anything that reads XML will be able to read it whether it's on one line (streamed) or structured.
    also can i export all the columns of the table by some thing like select * from the table in XML file ?A couple of ways of exporting XML to a file...
    -- DBMS_XSLPROCESSOR.clob2file
    -- outputs a clob to a file
    DECLARE
       ctx   DBMS_XMLGEN.ctxtype;
    BEGIN
       ctx := DBMS_XMLGEN.newcontext ('select * from emp');
       DBMS_XSLPROCESSOR.clob2file (DBMS_XMLGEN.getxml (ctx), 'TEMP', 'emp.xml');
       DBMS_XMLGEN.closecontext (ctx);
    END;
    PL/SQL procedure successfully completed.or
    ..snip..
      v_xml                 XMLTYPE;
      v_doc                 XMLDOM.DOMDocument;
      v_dir                 VARCHAR2(2000);
      v_file                VARCHAR2(2000);
    BEGIN
      v_xml := ... populate with XML ...;
      v_dir := 'TEST_DIR'; -- directory object name (in UPPER CASE)
      v_file := 'myfile.xml';
      v_doc := DBMS_XMLDOM.NEWDOMDOCUMENT(v_xml);
      DBMS_XMLDOM.WRITETOFILE(v_doc, v_dir||'\'||v_file, 'UTF-8');
      DBMS_XMLDOM.FREEDOCUMENT(v_doc);
    ..snip..

  • Generating XML from relational tables and storing back in CLOB field

    I have been reviewing the documentation and trying to figure out the best approach. I am on v 10.2.0.3 and need to select from a parent table and three child tables and want to generate the results as xml that I will place in a clob field in another table. I looked at XMLQuery and dbms_xmlgen.getxml. The difference appears to be that getxml allows you to code traditional sql to join the tables.
    I would greatly appreciate it if someone could provide some feedback and any sample code along the line that I describe above.
    Thank you in advance for your help!
    Jerry

    Any feedback to the above questions would be greatly appreciated!

  • Generate XML from a table

    Hi all,
    I have to generate an xml as given in the below format:
    There are 5 subjects.
    Rules to frame the xml:
    1) Whether students have opted for each subjects empty tags should be present , for eg: subCodeOne
    2) If there are duplicates in studid it has to be removed for each subject code.
    3) <subCodeOneStud> -- student details about subject code 1
    <studId> --- students name without duplicates
    <subCodeOnemarks> --- student marks for subject code1
    <subCodeOnePass> -- If atleast one student has passed in that subject this has to be set to Y
    In case of scenarios like 1 it should be N
    FORMAT:
    =======
            <subCodeOneStud>
              <StudId></StudId>
         </subCodeOneStud>
         <subCodeOnemarks>
              <marks></marks>
         </subCodeOnemarks>
         <subCodeOnePass>N</subCodeOnePass>
         <subCodeTwoStud>
              <StudId>531</StudId>
         </subCodeTwoStud>
         <subCodeTwomarks>
              <marks>9414</marks>
         </subCodeTwomarks>
         <subCodeTwoPass>N</subCodeTwoPass>
         <subCodeThreeStud>
              <StudId>531</StudId>
         </subCodeThreeStud>
         <subCodeThreemarks>
              <marks>8450</marks>
              <marks>0634</marks>
         </subCodeThreemarks>
         <subCodeThreePass>N</subCodeThreePass>
         <subCodeFourStud>
              <StudId>1757</StudId>
         </subCodeFourStud>
         <subCodeFourmarks>
              <marks>0405</marks>
         </subCodeFourmarks>
         <subCodeFourPass>N</subCodeFourPass>
         <subCodeFiveStud>
              <StudId>1757</StudId>
         </subCodeFiveStud>
         <subCodeFivemarks>
              <marks>0412</marks>
         </subCodeFivemarks>
         <subCodeFivePass>N</subCodeFivePass>
    SELECT
    sub_i,/*to remove duplicate studnames */
    extract(
    deleteXML(
    xmlelement("root", xmlparse(content stud_ids))
    , '/root/studId[preceding-sibling::studId=.]'
    , '/root/studId'
    ) students,
    marks,
    pass_flag,
    ,sub_i_w
    FROM
    SELECT
    sub_i,sub_i_w,
    '<studId>'||LTRIM(MAX(sys_connect_by_path(stud_name,'</studId><studId>')),'</studId><studId>')||'</studId>' stud_ids,
    '<marks>'||LTRIM(MAX(sys_connect_by_path(marks,'</marks><marks>')),'</marks><marks>')||'</marks>' marks,
    DECODE(MAX(pass_f),1,'Y','N') pass_flag
    FROM
    (SELECT
    sub_i,sub_i_w,
    stud_name,
    marks,
    pass_f,
    ROW_NUMBER() OVER(PARTITION BY PSN_ID ORDER BY sub_i ) RN
    FROM
    SELECT
    LEVEL sub_i,
    REPLACE(REPLACE(INITCAP(to_char(to_date(LEVEL,'J'), 'JSP')),' ',''),'-','')  sub_i_w /*subject id in words for the outer most tag */
    FROM
    DUAL
    CONNECT
    LEVEL <= 5
    )A
    LEFT OUTER JOIN
    (SELECT sub_i,
    stud_name,
    marks,
    decode(result,'Y',1,0) pass_f,
    FROM
    marklist
    )B
    ON (A.sub_i=B.sub_i)
    START WITH RN = 1
    CONNECT BY PRIOR RN = RN - 1 AND PRIOR sub_i = sub_i
    GROUP BY sub_i,sub_i_w
    )Doubts:
    ========     
    1) I am using the above query to generate studId and marks tag for all the five subjects
    I am getting an error: "ORA-01854:julian date must be between 1 and 5373484"
    Can any one help me in resolving this?
    2) To get the final xml i may have to add the below select query to the above query. But this kind of concatenation to get the tag , throws an error: right parenthesis
    SELECT
    REPLACE(
    REPLACE(
    XMLAGG(
    XMLELEMENT("subCode"||sub_i||"Stud",students),
    XMLELEMENT("subCode"||sub_i||"marks",marks),
    )).getStringVal(),'&&lt;','<'),'&&gt;','>')
    FROM3) Is this way of writing a query to generate the xml is effiecient .I am using oracle 10g
    Thanks in advance
    Edited by: BluShadow on 17-Oct-2011 08:09
    added {noformat}{noformat} tags for formatting.  Please read {message:id=9360002} and learn to do this yourself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Java application expects the tags to be like this :(I see...
    Don't forget to format what you post here as BluShadow kindly did for you earlier.
    Apart from the obvious readability reasons, that's particularly important for XML or HTML code because the forum software here might interpret some tags and not render them correctly.
    Thanks for the sample data anyway.
    This should get you going :
    with subjects as (
      select level as sub_id
           , initcap(to_char(to_date(level,'J'), 'JSP')) as sub_id_sp
      from dual
      connect by level <= 5
    select xmlagg(
             xmlconcat(
               xmlelement(evalname('subCode'||sub_id_sp||'Stud'),
                 xmlagg( case when rn = 1 then xmlelement("StudId", stud_name) end )
             , xmlelement(evalname('subCode'||sub_id_sp||'marks'),
                 xmlagg( xmlelement("marks", marks) )
             , xmlelement(evalname('subCode'||sub_id_sp||'Pass'),
                 nvl(max(case when pass_f = 'Y' then pass_f end), 'N')
           ).extract('/*') -- to "pretty-print" the result (not mandatory)
           as result
    from (
      select s.sub_id
           , s.sub_id_sp
           , m.stud_name
           , m.marks
           , m.pass_f
           , row_number() over(partition by s.sub_id, m.stud_name order by null) rn
      from subjects s
           left outer join marklist m on m.sub_id = s.sub_id
    group by sub_id, sub_id_sp
    RESULT
    <subCodeOneStud>
      <StudId/>
    </subCodeOneStud>
    <subCodeOnemarks>
      <marks/>
    </subCodeOnemarks>
    <subCodeOnePass>N</subCodeOnePass>
    <subCodeTwoStud>
      <StudId>raj</StudId>
      <StudId>rosy</StudId>
    </subCodeTwoStud>
    <subCodeTwomarks>
      <marks>20</marks>
      <marks>80</marks>
    </subCodeTwomarks>
    <subCodeTwoPass>Y</subCodeTwoPass>
    <subCodeThreeStud>
      <StudId/>
    </subCodeThreeStud>
    <subCodeThreemarks>
      <marks/>
    </subCodeThreemarks>
    <subCodeThreePass>N</subCodeThreePass>
    <subCodeFourStud>
      <StudId>jaya</StudId>
      <StudId>padma</StudId>
      <StudId>rosy</StudId>
    </subCodeFourStud>
    <subCodeFourmarks>
      <marks>100</marks>
      <marks>40</marks>
      <marks>30</marks>
      <marks>80</marks>
    </subCodeFourmarks>
    <subCodeFourPass>Y</subCodeFourPass>
    <subCodeFiveStud>
      <StudId>jai</StudId>
      <StudId>padma</StudId>
    </subCodeFiveStud>
    <subCodeFivemarks>
      <marks>100</marks>
      <marks>90</marks>
    </subCodeFivemarks>
    <subCodeFivePass>Y</subCodeFivePass>

  • How to generate XML from EBusiness suite ARXSGPO

    Could someone tell me how I can generate XML from the EBusiness Suite Accounts Receivable report ARXSGPO.rdf I understand this report is called by a C program. I have tried changing the concurrent request to output format to XML the result does not resemble XML. Does anyone have any suggestions how I can generate XML from the ARXSGPO report?
    Thanks,
    Mark

    Hi Mark
    the next release of XMLP will have last page only support. The problem is that at the template layer you do not know how many lines are going to fit on the page, so you never know what is going to be the last page. The only way around it for now is to specify the number of lines to a page and then check when all the lines have been rendered and then render the remit portion.
    I have a sample invoice that does the same, drop me a mail, you can work out the email from my name and the fact I work for XMLP Im sure.
    Tim

  • How to generate XML from SQL query

    possible ways to generate XML from SQL qury.
    i want to generate XML of following query. "Select * from emp,dep wher emp.deptno=dept.deptno"

    Hello.
    Can you try:
    SQL> set pages 0
    SQL> set linesize 150
    SQL> set long 9999999
    SQL> set head off
    SQL> select dbms_xmlgen.getxml('Select * from emp,dep wher emp.deptno=dept.deptno') from dual;
    It works fine for me.
    Octavio

  • Generating XML from database

    I'm a total newbie in XML DB and need advice on generating XML from database.
    The situation is the following: there is a legacy web application which uses an XML document as a configuration file. This document conforms to some well-defined schema. For instance:
    <config>
         <title value="TITLE" />
         <subtitle value="SUBTITLE" />
         <style url="default.css" />
         <widgets>
              <widget id="1" opened="true" />
              <widget id="2" opened="false" />
         </widgets>
    </config>
    It contains portions of static data which are common for all users as well as dynamic personal data.
    Dynamic data comes from two sources:
    1) security considerations (for instance, not all widgets are available for some users) - thus the "master" configuration content must be filtered, but not otherwise modified;
    2) user preferences (for instance, user can set widget2 to be opened by default) - thus values of some attributes must be different for each user. When the user saves her preferences, the entire document with new values is posted back to server.
    We want to try to store user preferences, apply security and generate personalized configuration documents using XML DB.
    So we need advice on storage models and generation procedures - which should be more efficient and easy to support or extend.
    Please note, that there is no requirement to actually store data as XML.
    Thanks in advance!
    P.S.: Sorry for the incomplete initial post.
    Edited by: WxD on 27.09.2010 11:45

    Hi,
    See this link for more details
    http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10790/xdb13gen.htm

  • Generating XMLs from CSVs using DOM parser......

    Hi,
    I am trying to generate XMLs from CSV files using DOM parser. XMLs are getting generated but the problem is that i am using Encoding "ISO-8859-1" but XMLs are getting generated in UTF-8 encoding.
    Please refer to the code below and advice. (where are the code tags gone ????? )
    Source domSource = new DOMSource(document);
    ByteArrayOutputStream xmlStream = new ByteArrayOutputStream();
    Result result = new StreamResult(xmlStream);
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.transform(domSource, result);
    xmlStream.close();
    generatedXml = new String(xmlStream.toByteArray(), "*ISO-8859-1*");

    Use transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1") to specify the character set.

  • Generating XML from SQL queries and saving to an xml file?

    Hi there,
    I was wondering if somebody could help with regards to the following:
    Generating XML from SQL queries and saving to a xml file?
    We want to have a procedure(PL/SQL) that accepts an order number as an input parameter(the procedure
    is accessed by our software on the client machine).
    Using this order number we do a couple of SQL queries.
    My first question: What would be our best option to convert the result of the
    queries to xml?
    Second Question: Once the XML has been generated, how do we save that XML to a file?
    (The XML file is going to be saved on the file system of the server that
    the database is running on.)
    Now our procedure will also have a output parameter which returns the filename to us. eg. Order1001.xml
    Our software on the client machine will then ftp this XML file(based on the output parameter[filename]) to
    the client hard drive.
    Any information would be greatly appreciated.
    Thanking you,
    Francois

    If you are using 9iR2 you do not need to do any of this..
    You can create an XML as an XMLType using the new SQL/XML operators. You can insert this XML into the XML DB repository using DBMS_XDB.createResource. You can then access the document from the resource. You can also return the XMLType containing the XML directly from the PL/SQL Procedure.

  • Generating XML from SQL queries and saving to a xml file?

    Hi there,
    I was wondering if somebody could help with regards to the following:
    Generating XML from SQL queries and saving to a xml file?
    We want to have a stored procedure(PL/SQL) that accepts an order number as an input parameter(the procedure
    is accessed by our software on the client machine).
    Using this order number we do a couple of SQL queries.
    My first question: What would be our best option to convert the result of the
    queries to xml?
    Second Question: Once the XML has been generated, how do we save that XML to a file?
    (The XML file is going to be saved on the file system of the server that
    the database is running on.)
    Now our procedure will also have a output parameter which returns the filename to us. eg. Order1001.xml
    Our software on the client machine will then ftp this XML file(based on the output parameter[filename]) to
    the client hard drive.
    Any information would be greatly appreciated.
    Thanking you,
    Francois

    Hi
    Here is an example of some code that i am using on Oracle 817.
    The create_file procedure is the one that creates the file.
    The orher procedures are utility procedures that can be used with any XML file.
    PROCEDURE create_file_with_root(po_xmldoc OUT xmldom.DOMDocument,
    pi_root_tag IN VARCHAR2,
                                            po_root_element OUT xmldom.domelement,
                                            po_root_node OUT xmldom.domnode,
                                            pi_doctype_url IN VARCHAR2) IS
    xmldoc xmldom.DOMDocument;
    root xmldom.domnode;
    root_node xmldom.domnode;
    root_element xmldom.domelement;
    record_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    xmldom.setDoctype(xmldoc, pi_root_tag, pi_doctype_url,'');
    -- Create the root --
    root := xmldom.makeNode(xmldoc);
    -- Create the root element in the file --
    create_element_and_append(xmldoc, pi_root_tag, root, root_element, root_node);
    po_xmldoc := xmldoc;
    po_root_node := root_node;
    po_root_element := root_element;
    END create_file_with_root;
    PROCEDURE create_element_and_append(pi_xmldoc IN OUT xmldom.DOMDocument,
    pi_element_name IN VARCHAR2,
                                            pi_parent_node IN xmldom.domnode,
                                            po_new_element OUT xmldom.domelement,
                                            po_new_node OUT xmldom.domnode) IS
    element xmldom.domelement;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    element := xmldom.createElement(pi_xmldoc, pi_element_name);
    child_node := xmldom.makeNode(element);
    -- Append the new node to the parent --
    newelenode := xmldom.appendchild(pi_parent_node, child_node);
    po_new_node := child_node;
    po_new_element := element;
    END create_element_and_append;
    FUNCTION create_text_element(pio_xmldoc IN OUT xmldom.DOMDocument, pi_element_name IN VARCHAR2,
    pi_element_data IN VARCHAR2, pi_parent_node IN xmldom.domnode) RETURN xmldom.domnode IS
    parent_node xmldom.domnode;                                   
    child_node xmldom.domnode;
    child_element xmldom.domelement;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    create_element_and_append(pio_xmldoc, pi_element_name, pi_parent_node, child_element, child_node);
    parent_node := child_node;
    -- Create a text node --
    textele := xmldom.createTextNode(pio_xmldoc, pi_element_data);
    child_node := xmldom.makeNode(textele);
    -- Link the text node to the new node --
    compnode := xmldom.appendChild(parent_node, child_node);
    RETURN newelenode;
    END create_text_element;
    PROCEDURE create_file IS
    xmldoc xmldom.DOMDocument;
    root_node xmldom.domnode;
    xml_doctype xmldom.DOMDocumentType;
    root_element xmldom.domelement;
    record_element xmldom.domelement;
    record_node xmldom.domnode;
    parent_node xmldom.domnode;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    create_file_with_root(xmldoc, 'root', root_element, root_node, 'test.dtd');
    xmldom.setAttribute(root_element, 'interface_type', 'EXCHANGE_RATES');
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mr', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'Joe', record_node);
    parent_node := create_text_element(xmldoc,'surname', 'Blogs', record_node);
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mrs', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'A', record_node);
    parent_node := create_text_element(xmldoc, 'surname', 'B', record_node);
    -- write the newly created dom document into the buffer assuming it is less than 32K
    xmldom.writeTofile(xmldoc, 'c:\laiki\willow_data\test.xml');
    EXCEPTION
    WHEN xmldom.INDEX_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Index Size error');
    WHEN xmldom.DOMSTRING_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'String Size error');
    WHEN xmldom.HIERARCHY_REQUEST_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Hierarchy request error');
    WHEN xmldom.WRONG_DOCUMENT_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Wrong doc error');
    WHEN xmldom.INVALID_CHARACTER_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Invalid Char error');
    WHEN xmldom.NO_DATA_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Nod data allowed error');
    WHEN xmldom.NO_MODIFICATION_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'No mod allowed error');
    WHEN xmldom.NOT_FOUND_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not found error');
    WHEN xmldom.NOT_SUPPORTED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not supported error');
    WHEN xmldom.INUSE_ATTRIBUTE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'In use attr error');
    WHEN OTHERS THEN
    dbms_output.put_line('exception occured' || SQLCODE || SUBSTR(SQLERRM, 1, 100));
    END create_file;

  • How to generate report from two tables using DAO design pattern?

    Hi,
    Iam using struts with DAO pattern for my application. According to DAO design im creating model class for each table in my database with getter,setter methods. i have no problem when im generating report from one table. but if have i have to join two tables whatis the better way for doing that? is it good practise to create a new model contains properties from both the tables?
    Please help me
    Thanks in Advance
    Rajesh

    Dear Rajesh,
    As per the pattern you are creating equivalent java objects for every database table under consideration in which each db field will become a private attribute and public getter and setter methods.
    If you have to display data from one table the above approach is sufficient enough.
    But in case your database is normalised ..lets take an example of Bank having Branch and Accounts tables. We dont need to repeat the whole information of the branch for every account in that branch. so we prefer to have a branch id in that table....this approach lot of insertion/deletion/updatation anomlies that may exists with the database...
    now lets come back to our topic....we shall create two java objects 1) Branch 2) Account.....
    When ever u just need to display simple report u can do it staright forward,,,,,now if u want to display branch information along with the account information....the two objects just created are not sufficient
    So i suggest u the following approaches
    1) Create an attribute of type Branch in the Accounts Object......
    This shall serve the purpose of displaying the Btranch information
    2) Create a collection object of type ( Vector or ArrayList) which can have objects of Account in the Branch Object,,,
    Now its upto u how shall u fill up the objects with appropriate sql queries.
    The method that i mentioned is followed by Oracle Toplink and Hibernate ....which provide Object to relation mapping layers.
    Any queries ...revert back to me...
    Mahesh

  • Creating XML from Oracle Tables

    Would it be possible to post me a snapshot of the ODI Flow diagram for an Oracle to XML conversion? Does the staging area have to be on the Target (XML)? What KMs & CM should be used? Can the XML be written straight back to an .xml file? What should the XML Schema look like?
    These are the KMs I use: LKM-SQL to SQL; IKM-SQL Incremental Update; CKM-SQL.
    My flow is straight from source (oracle) to target (xml), with staging area on target (doesn't feel right).
    My Oracle Dataserver & Schema work fine. Not sure about the XML dataserver setup though - I think this is where the problem lies. These are my JDBC settings:
    - com.sunopsis.jdbc.driver.xml.SnpsXmlDriver
    - jdbc:snps:xml?f=E:\Oracle ODI\Member.xsd
    I am evaluating ODI for a client and I wanted to throw together a quick demo showing how easily ODI can generate XML from any source. I know this is the case as I understand the concept of ODI's components - just haven't had time to read manuals thoroughly.
    Many thanks for your help,
    Steve

    Hello,
    1. Try to test the connection to the XML dataserver.
    2. Create a model and reverse-engineer this dataserver. You'll see what the XML structure is mapped to immediately.
    3. Integrate data to this model (using standard KM targeting "SQL").
    You can put the staging area on the Oracle source or in the XML driver if you want. Both solutions will work.
    just haven't had time to read manuals thoroughly.I think you should quickly read the "Sunopsis ODI with... XML" section in the manual.
    It is not very long and very helpful. Have also a quick look at the XML driver documentation.
    Regards,
    -FX

  • Hide name space of generated xml from xml bean

    Hi,
    how can i hide the namespace of the generated xml from xml bean, cause im having problems with jaxb parses.

    The targetNamespace is for webservice and not for the user defined classes.
    Sorry for the confusion
    Ajay
    "Ajay" <[email protected]> wrote in message
    news:[email protected]..
    There is a targetNamespace attribute in the autotyp ant task. But there
    was a bug in 8.1. Contact the support for a patch.
    The following mail explains that
    This looks like a bug. There is an undocument, not officially
    supported workaround: add the following java doc
    to yours source code -
    * @wlws:webservice targetNamespace="http://foo.bar"
    public class MyService {
    Details here:
    http://www.manojc.com/tutorial/sample3/source2wsdd.html
    Regards,
    -manoj
    http://manojc.com
    "Mark Fine" <[email protected]> wrote in message
    news:[email protected]..
    The attribute targetNamespace (of the autotype task) doesn't seem to putany
    information into the types file and later my deployment descriptor (viathe
    source2wsdd task) contains an invalid targetNamespace attribute with a
    http://tempuri.org:
    eg.
    <web-services>
    <web-service name="IndexService"
    targetNamespace="http://tempuri.org/"
    uri="/IndexWebService">
    I don't think this causes any problems but there should be a way tospecify
    the namespace.
    Has anyone else seen this is WLS8.1?
    "Siva" <[email protected]> wrote in message
    news:[email protected]..
    By default the autotype or the servicegen ant task seem to be creating anamespace
    from the java package name (like java:com.ventaso.external.common) for
    xml
    mapping
    of user defined java classes. Is there a way to change this to name
    space
    I want
    ? Specifying the targetnamespace doesn't seem to help.
    Thanks,
    Siva

Maybe you are looking for

  • Use check box in function module

    Hallow I build a function module and I declare a check  box (check_str in tab import) that u can choose if u wont to see relat 027 push x else u can see 027 +034 my error is with definition of ceck_str it bring me an error that called field relat is

  • SAP WM Putaway strategy - Next empty bin

    Hello, I am testing putaway strategy - L - Next empty bin. I' ve created 902 - Storage type: Also i've been activated storage type search and storage section search: Then i've added this data to material master: And i also defined movement type- 101

  • Setting of one process chain triggering by other?

    Hi Friends, we are having two process chains, PC1 and PC2. Daily PC1 triggers PC2. But i want to know where this setting is done in the system (PC1 triggers PC2) Can any one please tell me? Thanks..in advance Tony

  • Missing some impulse resposes for Space Designer

    I just realized that that the impulse respones for the "Warped effects" are missing. They are not located under the Library/Audio/Impulse responses/Apple folder where the others are. Does anyone know how to get them? I'm on Logic Pro 9.1.1 Thanks Mor

  • Picture full of interference

    Often when I play a movie or tv show downloaded from iTunes the picture is fuzzy and full of interference.  I have to close and restart iTunes to enable viewing.  Thoughts?