Creating XML file via sql in 10g database

Hi
I am using an Oracle 10g database and via a procedure that is called from Forms 10g, I want to output data in XML format so that this file can be fed into an accounting system that uses XML.
How do I go about doing this?

How do I go about doing this?The most flexible way is via SQL/XML publishing functions.
And use DBMS_XSLPROCESSOR.CLOB2FILE to write the result to a file in a single call :
DECLARE
  xmlresult      clob;
BEGIN
  select xmlelement("Departments",
           xmlagg(
             xmlelement("Department",
               xmlattributes(
                 d.deptno as "id"
               , d.dname as "name"
             , xmlelement("Employees",
                 xmlagg(
                   xmlelement("Employee",
                     xmlattributes(e.empno as "id")
                   , xmlforest(
                       e.ename as "Name"
                     , e.job as "Job"
                     , e.mgr as "ManagerId"
                   ) order by e.empno
             ) order by d.deptno
         ).getclobval()
  into xmlresult    
  from scott.dept d
       join scott.emp e on e.deptno = d.deptno
  group by d.deptno, d.dname
  dbms_xslprocessor.clob2file(xmlresult, 'TEST_DIR', 'departments.xml');
END;
/Output : departments.xml in Oracle directory TEST_DIR :
<Departments>
  <Department id="10" name="ACCOUNTING">
    <Employees>
      <Employee id="7782">
        <Name>CLARK</Name>
        <Job>MANAGER</Job>
        <ManagerId>7839</ManagerId>
      </Employee>
      <Employee id="7839">
        <Name>KING</Name>
        <Job>PRESIDENT</Job>
      </Employee>
      <Employee id="7934">
        <Name>MILLER</Name>
        <Job>CLERK</Job>
        <ManagerId>7782</ManagerId>
      </Employee>
    </Employees>
  </Department>
  <Department id="20" name="RESEARCH">
    <Employees>
      <Employee id="7369">
        <Name>SMITH</Name>
        <Job>CLERK</Job>
        <ManagerId>7902</ManagerId>
      </Employee>
      <Employee id="7566">
        <Name>JONES</Name>
        <Job>MANAGER</Job>
        <ManagerId>7839</ManagerId>
      </Employee>
      <Employee id="7902">
        <Name>FORD</Name>
        <Job>ANALYST</Job>
        <ManagerId>7566</ManagerId>
      </Employee>
    </Employees>
  </Department>
  <Department id="30" name="SALES">
    <Employees>
      <Employee id="7499">
        <Name>ALLEN</Name>
        <Job>SALESMAN</Job>
        <ManagerId>7698</ManagerId>
      </Employee>
      <Employee id="7521">
        <Name>WARD</Name>
        <Job>SALESMAN</Job>
        <ManagerId>7698</ManagerId>
      </Employee>
      <Employee id="7654">
        <Name>MARTIN</Name>
        <Job>SALESMAN</Job>
        <ManagerId>7698</ManagerId>
      </Employee>
      <Employee id="7698">
        <Name>BLAKE</Name>
        <Job>MANAGER</Job>
        <ManagerId>7839</ManagerId>
      </Employee>
      <Employee id="7844">
        <Name>TURNER</Name>
        <Job>SALESMAN</Job>
        <ManagerId>7698</ManagerId>
      </Employee>
      <Employee id="7900">
        <Name>JAMES</Name>
        <Job>CLERK</Job>
        <ManagerId>7698</ManagerId>
      </Employee>
    </Employees>
  </Department>
</Departments>(formatted for display purpose)

Similar Messages

  • Problems with creating XML file via Call Transformation

    Hi,
    When creating a XML file via Call transformation an extra character '#'is placed at the beginning of the file.
    This problems occurs since the upgrade to ECC6.0 and the Unicode conversion.
    When opening the XML file the following error message appears:
    Invalid at the top level of the document. Error processing resource 'file ....
    Has anybody an idea why this extra character is placed at the beginning of the file. Has it something to do with the unicode conversion and how can we solve the problem?
    thanks for your help
    kind regards,
    Maarten van IJzendoorn

    Hello Marteen,
    Can you please share the solution to this issue and let me know.
    Our Issue:
    1) We are executing a report which generates an XML file on FTP.
    2) The FTP file is always in Error when executed thorugh JAPANESE login but not thorugh EN login.
    3) The XML files generated have always an extra character in the end ( which can be space,#,$%^&, etc.) when this extra character is removed from XML file with opening it in NOTEPAD then XML works OK in JA login as well.
    4) In the PROGRAM everything has been checked with respect to OPEN dataset statement , XML ports UNICODE etc.
    5) THIS issue has been reported only after upgrading to ECC 6.0 from 4.6C.( in older version it works fine).
    Various OPEN dataset statments are :
    OPEN DATASET path_fil
    FOR OUTPUT
    Thanks to reply.

  • Loading XML file using sql*loader (10g)

    Hi Everyone....
    I have a major problem. I have a 10g database and I need to use sql loader to load a large XML file into the database. This file contains records for many, many customers. This will be done several times and the number of records will vary. I want to use sql loader and load to a staging table, BUT SPLIT THE RECORDS OUT and add a sequence. I am having 2 problems.
    In the 10g documentation, when you want to split the records you use the BEGINDATA clause and indicate something (like a 0) for each instance of a record. Well my first file has 3,722 records in it. How do I know the number of records in each XML file?
    The second problem is that because this is XML, I thought that I could use ENCLOSED BY. But the start tag has an attribute /counter in it, sql*loader doesnt recognize the starting tag. (i.e.: start tag is: </CustomerRec number=1>
    end tag is: </CustomerRec> )
    So, I used TERMINATED BY '</CustomerRec>'. This will split out the records, but it will NOT include the ending tag of </CustomerRec> and when I use extract, I receive an XML parsing error.
    I have tried to get the ending tag using CONTINUEIF and SKIP. But those options are for "records" and not lines.
    Does anyone have any ideas for the 2 problems above. I am at my wits end and I need to finish this ASAP. Any help would be appreciated.
    Thank you!

    Sorry.... here is an example of what my control file looks like. At the end, I have 92 "0", but remember, I have 3722 records in this first file.
    LOAD DATA (SKIP 1)
    INFILE *
    INTO TABLE RETURN_DATA_STG
    TRUNCATE
    XMLType(xmldata)
    FIELDS
    (fill FILLER CHAR(1),
    loadseq SEQUENCE(MAX,1),
    xmldata LOBFILE (CONSTANT F001AB.XML)
    TERMINATED BY '</ExtractObject>'
    ------ ":xmldata||'</ExtractObject>'"
    BEGINDATA
    0
    0
    0
    0
    0
    0

  • Create XML file from SQL trigger

    I have to create a XML file of a record when a certain column of table Absences is updated. I have the following bcp command in the (after update) trigger :
        bcp "select absences.HID, absences.Amount,absences.Itemcode,absences.Itemcount, absences.[Description],absences.PRocessnumber, Cicmpy.ID from absences inner join cicmpy on cicmpy.cmp_wwn = absences.HID where absences.Type = 110  for
    XML RAW (''Order''), ROOT (''Orders''), ELEMENTS XSINIL" QUERYOUT "c:\filename.xml" -T -SJR8512\sql2008 -c -d100'
    When the trigger is fired, the table get's a lock, so the file isn't created. What am I missing?

    As Russ says: Service Broker is exactly what you want. The trigger would put a message on the Service Broker queue. (And the message would be the XML document created from the inserted/deleted tables.) In the other application you would have an activation
    procedure that processes the message.
    If you have never worked with Service Broker, this book is an excellent start:
    http://www.amazon.com/Rational-Server-Service-Broker-Guides/dp/1932577270/ref=sr_1_1?ie=UTF8&qid=1399411944&sr=8-1&keywords=wolter+service+broker
    Also, bookmark Remus Rusanu's blog:
    http://rusanu.com/blog/
    Lot's of tips there.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • SQL Error : missing expression - Creating XML file with ODI

    Hi,
    I saw threads about errors like this and read that maybe it can come from how I chose the staging area. I still can't see where the problem is. I'm trying to create an xml file from data stored in a Oracle database. The interface which execution fails select data from tables and create a tag in the XML file. Here are information about it :
    The staging area is diferent from the target and is an oracle database schema. (I guess it creates temporary tables in that schema ?)
    In the flow tab, the LKM is LKM SQL to SQL, the option delete temporary objects is set to yes.
    The IKM choice for the target is IKM SQL Control Append and options are as following :
    - insert : yes
    - commit : yes
    - flow contreol : no
    - recycle errors : no
    - static control : no
    - truncate : no
    - delete all : no
    - create target table : yes
    - delete temporary objects : yes
    Columns mapping in the target are the following :
    WKID        >     THEADER.WKID
    EXTID        >     THEADER.EXTID
    ORDER     >     THEADER.ORDER
    INSTFK     >     THEADER.INSTFK
    For every column in the target :
    - Run on source
    - Updating : insert, update and ud4 are checked
    no update key is defined
    In the operator, the step failing when running the interface is the loading data in the work table.
    If you need the SQL request in the execution plan, or anything else, please tell me.
    Thank you in advance for any help on this.
    Marie

    It would help if you provide error message and its stack trace.
    Please also look at the documentation (If not already done so) for creating xml file XML Files - 11g Release 1 (11.1.1)

  • Creating APEX pages via SQL scripts..

    Hi Guys,
    I want to create APEX pages via SQL Script. The main reason to have this option that I have couple of applications which has XML files for screen definition where I can read all screen properties (field types, sizes, caption, etc...)
    Is there any documentation or help stuff where I can find the APEX page definition tables? I found something like WWV tables but I couldnt figure it out properly...
    Any help ?
    Thanks,
    Osman...

    We have built our entire apex app in a similar way. We create the shell apex pages using apex (eg, Item Detail, Insert Item, etc.). Then we create a PL/SQL region on the page. The PL/SQL region simply calls a stored procedure to render the controls on the page. For example, our regions looks similar to this:
    begin
    apex_pkg.sp_render_page('ITEM_DETAIL',Param1,Param2,Param3);
    end;
    The sp_render_page procedure in the database generates the appropriate HTML for the page. This procedure reads meta data in the database (eg, field label, field size, field type, field position, etc.) and renders the same HTML that apex would render if the apex page was manually created. For example, in the procedure we use lines similar to these:
    HTP.p(apex_item.text(...))
    HTP.p(apex_item.select_list_from_query(...))
    Because the procedure is reading meta data, the apex page is dynamic and can be different for different users or clients.
    Darrin

  • Creating XML File Using xmldom Package

    How can I create an XML file from scratch using the PL/SQL xmldom package?
    I want to create an XML file using the xmldom package instead of building the individual tags as strings of VARCHAR2 character data. There is quite a bit of documentation regarding manipulating input XML files using DOM -- but not for creating XML files from scratch given known "tagnames" (<lastName>) and retrieved database "values" ("Smith").
    <person>
    <lastName>Smith</lastName>
    </person>
    Is there any documentation that you can recommend?
    Thank you.

    Here is an example.
    The create_file procedure creates the file.
    The other procedures are generic procs that can be used with any XML.
    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;

  • Any support to create XML files?

    Hello,
    I was looking for functionality and support that OWB 10gR2 might offer in order to create XML files, containing relational data w.r.t a given definition. I did only find the packages that allow manipulation of XML data in tables and those two that allow loading data from XML files, but didn't find any write support.
    Is my conclusion correct that there is no functionality that supports coding data in XML files in OWB 10gR2? Can anyone who knows please confirm or falsify this conclusion.
    Thanks in advance.
    Regards Holger

    Hi,
    the best way with BI Publisher to do that is a data template: http://download.oracle.com/docs/cd/E10383_01/doc/bip.1013/b40017/T421739T434255.htm
    With that you can create your wished structure out of the database.
    Have you tried with database functinonality? Have a look at the SQL/XML Functions: http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb13gen.htm#sthref1484
    which could be an approach.
    Regards
    Rainer

  • Creation of a shipping notification for a PO in EBP from a XML file via XI.

    Hi everybody.
    We are trying to create a shipping notification for a Purchase Order in Enterprise Buyer from a XML file via XI.
    For to do it, we are using ‘DespatchedDeliveryNotification_In’ message interface (transaction SPROXY).
    But when we execute it, the system show us next message:
    "An error occured within an XI interface: An exception with the type CX_GDT_CONVERSION occurred, but was neither handled locally, nor declared in a RAISING clause Programm: SAPLBBP_BD_MAPPING_SAPXML1; Include: LBBP_BD_MAPPING_SAPXML1F5B; Line: 4"
    No more information is available.
    Is there any additional transaction to see more information about the error message?
    Is there any documentation about this XML file, mandatory fields, examples…?
    We populated some fields in our XML file, but we do not know if the problem is with mandatory fields, data, program error…
    I will thank for any information
    Thanks in advance.
    Raúl Moncada.

    Raúl,
    This is because of the inbound UOM.
    The include LBBP_BD_MAPPING_SAPXML1F5B is in charge of mapping the item Unit Of Mesure (UOM) sent in the ASN XML file (it should be an ISO code).
    You can test FM UNIT_OF_MEASURE_ISO_TO_SAP with this inbound ISO code.
    PS: you should create an OSS message so the mapping sends back an error message instead of generating an uncatched exception (that generates a dump).
    Rgds
    Christophe
    PS: please reward points for helpfull answers

  • Create XML file on application server (unix directory) from internal table

    Hallo everybody,
    I have got the following problem:
    I am working with <u><b>release 4.6C</b></u> and have got to create XML files from HR master data and organizational data respectively.
    This takes place in 3 steps:
    1.     Collect the data in an internal table
    2.     Convert the data to XML format using the function module 'SAP_CONVERT_TO_XML_FORMAT'
    3.     Download the data
    If I download the converted data, which are in an internal table, to the presentation server via the function module ‘WS_DOWNLOAD’ and open it with the Internet Explorer, everything is ok.
    If I download the converted data to the application server, i.e. into a unix directory via
    ‘open dataset’, ‘loop at internal table, ‘transfer working area to file’, ‘close dataset’
    and then try to open it, this is not possible, because after the last tag some unreadable characters, e.g. a square, appear that aren’t supposed to be there. That’s what my colleagues told me, for I haven’t got access to the server.
    I have no idea where these characters come from and how I can get rid of them. I guess that either I have to modify (how?) the table with the converted data before the download or I have to use another way to convert the data. For the second way I would probably have to work with an XML class or an XML interface. Unfortunately I’I am not an expert in working with classes so sample coding would have to be rather detailed.
    Here’s some more information about how I work with the conversion function module:
      call function 'SAP_CONVERT_TO_XML_FORMAT'
           exporting
                i_field_seperator    = lv_field_seperator
               i_line_header        = lv_line_header
               i_filename           = lv_xml_file
               i_appl_keep          = ' '
                i_xml_doc_name       = lv_xml_doc_name
           importing
                pe_bin_filesize      = lv_result
           tables
                i_tab_sap_data       = gt_data
           changing
                i_tab_converted_data = lt_tab_converted_data
           exceptions
                conversion_failed    = 1
                others               = 2.
    lv_field_seperator = ‘X’.
    lv_xml_doc_name = ‘Personalstammdaten Publikation’
    lv_result: type i
    gt_data: fields: PERNR, PERSG, PERSK etc.
      types:
      begin of truxs_xml_line,
        data(256) type x,
      end of truxs_xml_line.
      types:
      truxs_xml_table type table of truxs_xml_line.
    data:
    lv_tab_converted_data type truxs_xml_line,
    lt_tab_converted_data type truxs_xml_table
    open dataset lv_xml_file for output in binary mode.
    loop at lt_tab_converted_data into lv_tab_converted_data.
      transfer lv_tab_converted_data to lv_xml_file.
    endloop.
    close dataset lv_xml_file
    lv_xml_file: /usr/users/.../.../Personendaten_2004-11-02.xml
    Hope the information is detailed enough! Otherwise let me know. Thank you in advance.
    Message was edited by: Johannes Schwehm

    Hi Raja,
    tried the "TEXT" mode, but that didn't help.
    There are still characters after the last tag, that are not supposed to be there including a date that is not
    the creation date of the file.
    Thank you for your help.
    Regards
    Johannes

  • SSMS 2012: Import XML File to SQL Table - 'value' is not a recognized built-in function name!!??

    Hi all,
    I have the following xml file (books1.xml):
    <bookstore>
    <book>
    <BookID>1</BookID>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
    </book>
    <book>
    <BookID>2<BookID>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
    <book>
    <BookID>3<BookID>
    <title>XQuery Kick Start</title>
    <author>James McGovern</author>
    <year>2003</year>
    <price>49.99</price>
    </book>
    <book>
    <BookID>4<BookID>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
    </book>
    </bookstore>
    In my Microsoft SQL Server 2012 Management Studio, I executed the following SQL Query code:
    --XQuery w3schools example using books1.xml in C:\Temp folder
    ---SQL Query W3books Title
    ---9 March 2015
    USE XML_XQUERY
    GO
    CREATE TABLE W3Books(
    BookID INt Primary Key,
    Title VARCHAR(30));
    INSERT INTO W3Books (BookID, Title)
    SELECT x.book.query('BookID'), value('.', 'INT'),
    x.book.query('title'), value('.', 'VARCHAR(30)')
    FROM (
    SELECT CAST(x AS XML)
    FROM OPENROWSET(
    BULK 'C:\Temp\books1.xml',
    SINGLE_BLOB) AS T(x)
    ) AS T(x)
    CROSS APPLY x.nodes('W3Books/book') AS x(book);
    SELECT BookID, Title
    FROM W3Books;
    I got the following error messages:
    Msg 195, Level 15, State 10, Line 7
    'value' is not a recognized built-in function name.
    Msg 156, Level 15, State 1, Line 16
    Incorrect syntax near the keyword 'AS'.
    I don't know why I got the error of 'value' is not a recognized built-in function name. Please kindly help and tell me what is wrong in my code and how to correct the error.
    Thanks, Scott Chang
    P. S.
    (1) I mimicked the xml file and SQL Qeury code of Import XML File to SQL Table in
    http://pratchev.blogspot.com/2008/11/import-xml-file-to-sql-table.html. The xml file and the code of this sample worked in my SSMS 2012 program.
    (2) I am learning the "CAST" and "CROSS APPLY" in the Create Instances of XML Data of Microsoft MSDN - it is very abstract to me.

    Hi Stan210, Thanks for your nice response.
    I corrected my xml file as you pointed out.
    I made some changes in some code statements of my SQLQueryW3BookTitle.sql as you instructed:
    --XQuery w3schools example using books1.xml in C:\Temp folder
    ---SQL Query W3books Title
    ---10 March 2015
    USE XML_XQUERY
    GO
    CREATE TABLE W3Books(
    BookID INt Primary Key,
    Title VARCHAR(30));
    INSERT INTO W3Books (BookID, Title)
    SELECT x.book.value('/BookID[1]', 'INT'),
    x.book.value('/title[1]', 'VARCHAR(30)')
    FROM (
    SELECT CAST(x AS XML)
    FROM OPENROWSET(
    BULK 'C:\Temp\books1.xml',SINGLE_BLOB) AS T(x)
    ) AS T(x)
    CROSS APPLY x.nodes('bookstore/book') AS x(book);
    SELECT BookID, Title
    FROM W3Books;
    I executed my revised sql and I got the following Message and Results:
    Msg 515, Level 16, State 2, Line 6
    Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls. INSERT fails.
    The statement has been terminated.
    (0 row(s) affected)
    Results:
    BookID    Title
    I don't know why I just got the names of columns in Results and the "Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls, insert fails." in Messages.  Please kindly help, advise me
    how to correct the errors and respond again.
    Many Thanks again,
    Scott Chang

  • Problem loading XML-file using SQL*Loader

    Hello,
    I'm using 9.2 and tryin to load a XML-file using SQL*Loader.
    Loader control-file:
    LOAD DATA
    INFILE *
    INTO TABLE BATCH_TABLE TRUNCATE
    FIELDS TERMINATED BY ','
    FILENAME char(255),
    XML_DATA LOBFILE (FILENAME) TERMINATED BY EOF
    BEGINDATA
    data.xml
    The BATCH_TABLE is created as:
    CREATE TABLE BATCH_TABLE (
    FILENAME VARCHAR2 (50),
    XML_DATA SYS.XMLTYPE ) ;
    And the data.xml contains the following lines:
    <?xml version="2.0" encoding="UTF-8"?>
    <!DOCTYPE databatch SYSTEM "databatch.dtd">
    <batch>
    <record>
    <data>
    <type>10</type>
    </data>
    </record>
    <record>
    <data>
    <type>20</type>
    </data>
    </record>
    </batch>
    However, the sqlldr gives me an error:
    Record 1: Rejected - Error on table BATCH_TABLE, column XML_DATA.
    ORA-21700: object does not exist or is marked for delete
    ORA-06512: at "SYS.XMLTYPE", line 0
    ORA-06512: at line 1
    If I remove the first two lines
    "<?xml version="2.0" encoding="UTF-8"?>"
    and
    "<!DOCTYPE databatch SYSTEM "databatch.dtd">"
    from data.xml everything works, and the contentents of data.xml are loaded into the table.
    Any idea what I'm missing here? Likely the problem is with special characters.
    Thanks in advance,

    I'm able to load your file just by removing the second line <!DOCTYPE databatch SYSTEM "databatch.dtd">. I dont have your dtd file, so skipped that line. Can you check if it's problem with ur DTD?

  • How to create xml file through SDK?

    Hi,
    I need help in creating the xml file using SAP B1 SDK?
    i want to create xml file which is in tally xml format.
    Warm Ragards,
    Mahendra

    Hi Mahendra,
    This is an example to save a form as XML :
    try
                    System.Xml.XmlDocument oXmlDoc = null;
                    string sXmlString = null;
                    oXmlDoc = new System.Xml.XmlDocument();
                    // get the form as an XML string
                    sXmlString = Form.GetAsXML();
                    // load the form's XML string to the
                    // XML document object
                    oXmlDoc.LoadXml(sXmlString);
                    string sPath = null;
                    sPath = System.IO.Directory.GetParent(System.Windows.Forms.Application.StartupPath).ToString();
                    sPath = System.IO.Directory.GetParent(sPath).ToString();
                    // save the XML Document
                    oXmlDoc.Save((sPath + @"\Form" + sType + ".xml"));
                    //oXmlDoc.Save(DIRECTORY_TEMPLATE + "Form" + sType + ".xml");
                catch (Exception ex)
                    SBO_Application.MessageBox("ERROR in 'SaveAsXML()' : " + ex.Message, 1, "Ok", "", "");
    And an example to navigate in the XML file :
    System.Xml.XmlDocument xxml;
                                    System.Xml.XmlNode node;
                                    System.Xml.XmlNodeList nodes;
                                    xxml = new System.Xml.XmlDocument();
                                    xxml.LoadXml(oRecAU.GetAsXML());
                                    nodes = xxml.SelectNodes("BOM/BO/IFC_AU/row");
                                    foreach (System.Xml.XmlNode node in nodes)
                                        oColumn.ValidValues.Add(node.SelectSingleNode("Code").InnerText, node.SelectSingleNode("Name").InnerText);
    I hope it's help you.
    Regards
    Michael

  • 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

  • Creating XML file from Java Bean

    Hi
    Are there any standard methods in Java 1.5 to create XML file from java bean,
    i can use JAXB or castor to do so,
    But i would like to know if there is any thing in java core classes,
    I have seen XMLEncoder, but this is not what i want.
    Any ideas
    Ashish

    Marshall JavaBean to an XML document with JAXB or XMLBeans.

Maybe you are looking for