XML with PL/SQL

i want to generate the XML document in tree
structure format by writing the Pl/sql

Use the xmlgen.getXML package/proceure. This comes with the Oracle SQl Utility (I believe) tool.

Similar Messages

  • Validate xml with PL/SQL Parser

    Hi,
    i have an xml DTD into a VARCHAR2 variable and an xml document
    into a CLOB, i'd like to know how to validate the xml with my
    DTD using PL/SQL API for xml.
    Sorry for my terrible english (i'm not english) :-)
    Tank you.

    Here's an example:
    set serveroutput on
    DECLARE
      p xmlparser.parser;
      d xmldom.DOMDocument;
      dtd xmldom.DOMDocumentType;
      v varchar2(32700);
      good clob;
      bad clob;
      xml_parse_error exception;
      pragma exception_init(xml_parse_error,-20100);
    BEGIN
      bad   := '<!DOCTYPE Department SYSTEM "test.dtd"><Deprtment/>';
      good  := '<!DOCTYPE Department
    SYSTEM "test.dtd"><Department/>';
      v := '<!ELEMENT Department EMPTY>';
      p := xmlparser.newParser;
      xmlparser.parseDTDBuffer(p,v,'Department');
      xmlparser.setDoctype(p,xmlparser.getDoctype(p));
      xmlparser.setValidationMode(p,TRUE);
      xmlparser.parseClob(p,good);
      xmlparser.parseClob(p,bad);
      xmlparser.freeParser (p);
    EXCEPTION
      WHEN xml_parse_error THEN
         DBMS_OUTPUT.PUT_LINE(sqlerrm);
         xmlparser.freeParser (p);
    END;

  • Create XML with PL/SQL

    Hi,
    What is the best way to create large XML in pl/sql?? and to read large XML from CLOB procedure parameter?????
    Thanks

    Use the internal XML-structures of the database, such as XMLType, XMLElement, XMLForrest. Have a look at the XMLDB-documentation.

  • Validating XML with PL/SQL parser

    How can i validate a xml that is on a buffer with the grammar
    stored in a BLOB column of o table? I'm using PL/SQL parser and
    i can parse it correctly but i don't know how can i validate it
    because my grammar is stored in DB.
    null

    Ana Lucia (guest) wrote:
    : How can i validate a xml that is on a buffer with the grammar
    : stored in a BLOB column of o table? I'm using PL/SQL parser
    and
    : i can parse it correctly but i don't know how can i validate
    it
    : because my grammar is stored in DB.
    You can't currently but this will be available in our next
    release.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    null

  • XML using PL-SQL

    Hi All,
    I am trying to use XML for building an application. Is it
    possible to generate page by only using a PL-SQL?
    I know how to generate XML by using PL-SQL.
    --How can I apply XSL document to it?
    Thanks,
    Samir

    The XML Developers kit available on this site at: http://technet.oracle.com/tech/xml/
    contains utilities for parsing XML with PL/SQL and other methods.

  • XML Publisher Report with PL/SQL

    Hi
    Like to know how to develop the XML Publisher Report with PL/SQL, i did the following
    1. created a pkg like as below
    CREATE OR REPLACE PACKAGE BODY APPS.TEST_XMLTAG_PKG AS
    PROCEDURE main (errbuf OUT VARCHAR2,
    retcode OUT NUMBER
    ) IS
    BEGIN
    DECLARE
    ctx DBMS_XMLGEN.ctxHandle;
    xml CLOB;
    BEGIN
    ctx := dbms_xmlgen.newcontext('select * from scott.emp');
    dbms_xmlgen.setrowtag(ctx, 'MY-ROW-START-HERE');
    xml := dbms_xmlgen.getxml(ctx);
    dbms_output.put_line(xml);
    Fnd_file.put_line (fnd_file.LOG, XML);
    END;
    END;
    END TEST_XMLTAG_PKG;
    this pkg produces the output with xml tag in the view log.
    I have registered the conc program & xml rtf but it does not produce the output in PDF, , I am not able to get the xml tag when i click the Diagnostics --> View XML.
    can you please let me know the next steps involved.
    Regards
    Yram

    I think the problem is because there is no begin and end tag. save the xml from the logfile and open with xml editor or IE.. then you will see the problem.
    add Begin and end tag...then you should be fine.. i.e
    fnd_file.put_line(fnd_file.output,'<EMP_DATA>'); -- begin Tag
    tx := dbms_xmlgen.newcontext('select * from scott.emp');
    dbms_xmlgen.setrowtag(ctx, 'MY-ROW-START-HERE');
    xml := dbms_xmlgen.getxml(ctx);
    dbms_output.put_line(xml);
    Fnd_file.put_line (fnd_file.LOG, XML);
    fnd_file.put_line(fnd_file.output,'</EMP_DATA>'); -- End Tag
    Hope this helps..>Good Luck
    Ravi

  • How to develope a XML-RPC client with PL/SQL

    Anyone know how to develop a XML-RPC client with PL/SQL?
    I've oracle 8i.
    Have you some example of code?
    Thanks
    Paolo

    So, you actually want to create the physical directory using JAVA?
    Then see:
    http://www.oracle-base.com/articles/8i/shell-commands-from-plsql.php

  • Create document with PL/SQL xml parser

    Hello,
    I'm trying to create a document with PL/SQL package xmldom on 8.1.7 and write to a file.
    The problem is that my file is empty when it's created.
    Can anyone send me an example of this simple problem or fullfill my example so it's works.
    As you understand I'm new in using XML. :)
    My example is:
    declare
    doc xmldom.DOMDocument;
    n xmldom.DOMNode;
    e xmldom.domelement;
    t xmldom.domtext;
    begin
    doc := xmldom.newdomdocument;
    t := xmldom.createtextnode(doc, 'ROOT');
    n := xmldom.makenode(t);
    doc := xmldom.makedocument(n);
    xmldom.writetofile(doc, 'd:\orant\xdk\plsql\demo\test.xml');
    end;
    Regards
    Hekan

    Your problem may be memory for the JavaVM. Remember, the PL/SQL
    parser uses the Java XML Parser APIs which run in a VM instance.
    Are you running Oracle 8i? If you are you can access our Java
    XML parser loaded in 8i's VM directly from your PL/SQL code.
    That is in fact how our PL/SQL Parser does it.
    Finally, we have no experience loading other XML Parsers into
    Oracle.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    Premal Mehta (guest) wrote:
    : Hi,
    : I asked about his a few days back. Pl/SQL parser does not
    work
    : for XML files of size greater then 500Kb. You replied saying
    : that there were no such problem.
    : However whenever I try, either I get some exception or
    Pl/SQL
    : crashes due to memory error. I am clueless. Is there some
    : setting that I can do to get away with the problem? Please
    : guide...
    : Also, tell me about the alternatives.
    : Can I write code in Java and load these class filesin Oracle
    : and then reference these classes from Pl/SQL code. Can I load
    : any other parser for Java in Oracle.
    : Looking forward for help...
    : Premal.
    null

  • Oracle SQL - Extracting clob value from XML with repeating nodes

    Hi All,
    I am attempting to run SQL on a table (called test_xml with a column xml_data [data type xmltype]). The column contains xml with repeating nodes (description). The following statement runs successfully when the node contains data of a non clob size:
    SELECT
    extractvalue (Value (wl), '*/description')
    FROM test_xml
    , TABLE (xmlsequence (extract (xml_data, '*/record'))) wl
    but fails when description node contains a lot of data:
    ORA-01706: user function result value was too large
    I amended my query:
    SELECT
    extractvalue(Value (wl), '*/description').getClobVal()
    FROM test_xml
    , TABLE (xmlsequence (extract (xml_data, '*/record'))) wl
    but this fails with:
    ORA-22806: not an object or REF
    Thanks in Advance

    Hi Greg,
    11.2.0.2.0 (Although I will need to do this on my work instance also which is 10.2.0.4)That's gonna be a problem...
    Direct CLOB projection is supported starting with 11.2.0.2, using XMLTable or XMLCast/XQuery functions (extractvalue, extract, xmlsequence are deprecated now) :
    SELECT x.*
    FROM test_xml t
       , XMLTable(
           '/*/record'
           passing t.xml_data
           columns
             description  clob path 'description'
         ) x
    ;On prior versions, implicit conversions will occur to VARCHAR2 datatype, hence the limitation observed.
    AFAIK you have two options on 10.2.0.4 :
    1) Using Object-Relational storage, with the xdb:SQLType="CLOB" annotation.
    2) Using the following trick :
    SELECT dbms_xmlgen.convert(x.description.getClobVal(), 1) as description
    FROM test_xml t
       , XMLTable(
           '/*/record'
           passing t.xml_data
           columns
             description  xmltype path 'description/text()'
         ) x
    ;

  • Batch Reading with Custom SQL

    Hello,
    Queries
    1. Is it possible to use Batch Reading in conjunction with Custom Stored Procs/ SQL?
    2. Is it possible to map an attribute to a SQL expression (like in Hibernate we have formula columns mapped using the formula* property)?
    Background
    1. We use Toplink 11g (11.1.1.0.1) (not EclipseLink) in our application and are controlling mapping using XML files (not annotations).
    2. We are migrating a legacy application with most of its data retreival logic present in stored procedures to Java.
    3. I am effectively a newbie to Toplink.
    Scenario
    1. We have a deep class heirarchy with ClassA+ at the following having a one-to-many relation with ClassB+ and ClassB+ having a one-to-many relation with ClassC+ and so on and so forth.
    2. For each of these classes the data retreival logic is present in stored procedures (coming from the legacy application) containing not so simple queries.
    3. Also there are a quite a few attributes that actually represent computed values (computed and returned from the stored procedure). Also the logic for computing the values are not simple either.
    4. So to make things easy we configured toplink to use the stored procedures to retreive data for objects of ClassA+, ClassB+ and ClassC+.
    5. But since the class heirarchy was deep, we ended up firing too many stored procedure calls to the database.
    6. We thought we could use the Batch Reading feature to help with this, but I have come across documentation that says that it wont work if you override toplink's queries with stored procedures.
    7. I wrote some sample code to determine this and for the heirarchy shown above it uses the speicifed Custom procedure (I also tried replacing the stored procs with custom SQL, but the behavior is the same) for ClassA+ and ClassB+, but for ClassC+ and below it resorts to its own generated SQL.
    8. This is a problem because the generated SQL contains the names of the computed columns which is not present in the underlying source tables.
    Thanks
    Arvind

    Batch reading is not supported with custom SQL or stored procedures.
    Join fetching is though, so you may wish to investigate that (you need to ensure you return the correct data from the stored procedure).
    James : http://www.eclipselink.org

  • Loading XML file in SQL Developer become ONE ROW !!

    Hi:
    I load the XML file to SQL Developer.
    I found out that the XML files data are in one ROW?
    Am I right?
    Please let me know please
    Sem

    Hi RAGS1109,
    If our XML data starts to get more complicated (multiple levels of elements / attributes), we start getting more outputs, we will have to join those outputs with a merge join transform.
    Please refer to the following document how to dealing with multiple outputs for XML data source:
    Using XML Source:
    http://blogs.msdn.com/b/mattm/archive/2007/12/11/using-xml-source.aspx 
    Process Multi-Level XML in SSIS:
    http://www.youtube.com/watch?v=rFgLV58EcXA
    If you have any feedback on our support, please click
    here.
    Elvis Long
    TechNet Community Support

  • JMS and XML in PL/SQL

    I'm prototyping a JMS Listener / XML Parser in PL/SQL. I've not used either technology in conjunction with PL/SQL before, so I'm looking for resources to aid my research.
    Our current system is a Java Application that receives JMS messages off of a TIBCO EMS queue, parses the XML payload, and inserts the resulting records into the database using JDBC. What we’re hoping to do is to move all of this inside the database to improve the performance and reduce the network traffic. Recommendations of resources would be greatly appreciated!

    My mistake...
    exec dbms_aqadm.create_queue_table(queue_table=>'JMSDEMO_QUEUE_TABLE', queue_payload_type=>'sys.aq$_jms_text_message',multiple_consumers=>true);
    instead of sys.aq$_jms_text_message, I used sys.xmltype
    Once I corrected, things are working fine.

  • How to insert into table from a xml with XDE for java?

    want to insert into the oracle tables from the xml with XDE for java, some sample better. thank you.

    XML Document may be stored in a SQL database with XML SQL Utility.
    http://download-west.oracle.com/docs/cd/B13789_01/appdev.101/b10794/adx08xsu.htm#i1008168
    XML Document may be stored in a SQL database with Oracle XML DB.
    http://download-west.oracle.com/docs/cd/B13789_01/appdev.101/b10790/xdb03usg.htm#CEGFECFH

  • 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?

  • Portal 4.0 with MS SQL Server 2000 using CLOBs

    Hello,
    I'm driving Portal 4.0 with MS SQL Server 2000. I have encountered serious
    problems when trying to persist events (e.g. RuleEvent) to database. In my
    application-config.xml file I have JdbcHelper attributes
    ShouldUseClobsForReads & -Writes set to 'false' as they should be or
    mssqlserver4v70 driver.
    It seems that when it is time to write the event to database, Portal4.0
    can't find JdbcHelper MBean configuration values and therefore it uses
    default values (=true) for both attributes.
    Otherwise reading and writing works fine with MS SQL Server 2000 (at least
    DATA_SYNC_ITEMs).
    Any help appreciated.
    Regards,
    JR
    P.S.
    Here are some excerpts from the console output:
    [BufferManager$PersistenceRequest.execute():247]
    PersistenceRequest::execute -> write to database
    [AbstractDatabasePersister.persist():135] Persister::persist -> write the
    events. size=2
    *** com.bea.p13n.util.jdbc.JdbcHelper.getInstance() @ JdbcHelper.java:122
    [JdbcHelper.getInstance():139] No instance found for
    sun.misc.Launcher$AppClassLoader@71732b
    [JdbcHelper.<init>():111] Unable to find JdbcHelper Configuration ...using
    defaults: java.lang.IllegalStateException: Not in application context
    at
    com.bea.p13n.management.ApplicationHelper.getApplicationName(ApplicationHelp
    er.java:119)
    at
    com.bea.p13n.management.ApplicationHelper.getApplicationConfigurationMBean(A
    pplicationHelper.java:440)
    at
    com.bea.p13n.management.ApplicationHelper.getServiceConfigurationMBean(Appli
    cationHelper.java:318)
    at com.bea.p13n.util.jdbc.JdbcHelper.<init>(JdbcHelper.java:102)
    at
    com.bea.p13n.util.jdbc.JdbcHelper.getInstance(JdbcHelper.java:141)
    at
    com.bea.p13n.util.jdbc.JdbcHelper.getConnection(JdbcHelper.java:265)
    at
    com.bea.p13n.tracking.internal.persistence.AbstractDatabasePersister.getConn
    ection(AbstractDatabasePersister.java:202)
    at
    com.bea.p13n.tracking.internal.persistence.AbstractDatabasePersister.persist
    (AbstractDatabasePersister.java:140)
    at
    com.bea.p13n.tracking.internal.persistence.BufferManager$PersistenceRequest.
    execute(BufferManager.java:250)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    *** com.bea.p13n.util.jdbc.JdbcHelper.getInstance() @ JdbcHelper.java:122
    [JdbcHelper.getInstance():131] Got instance for
    sun.misc.Launcher$AppClassLoader@71732b
    [JdbcHelper._setClob():412] ######## JdbcHelper: String length = 496
    [JdbcHelper._setClob():420] ######## JdbcHelper: setting CLOB String with
    setCharacterStream()
    <7.1.2002 14:27:41 GMT+02:00> <Error> <Tracking> <Error persisting event to
    database. java.sql.SQLException: java.sql.SQLException: This JDBC 2.0 method
    is not implemented
    at
    weblogic.jdbc.rmi.SerialPreparedStatement.setCharacterStream(SerialPreparedS
    tatement.java:428)
    at com.bea.p13n.util.jdbc.JdbcHelper._setClob(JdbcHelper.java:424)
    at com.bea.p13n.util.jdbc.JdbcHelper.setClob(JdbcHelper.java:404)
    at
    com.bea.p13n.tracking.internal.persistence.BehaviorTrackingPersister.setPrep
    aredStatementData(BehaviorTrackingPersister.java:93)
    at
    com.bea.p13n.tracking.internal.persistence.AbstractDatabasePersister.persist
    (AbstractDatabasePersister.java:157)
    at
    com.bea.p13n.tracking.internal.persistence.BufferManager$PersistenceRequest.
    execute(BufferManager.java:250)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    Hi,
    I would suggest better to have a backup of existing database remove your existing SQL server. Install the  one given by SAP. And restore your previous databases.
    --Ragu

Maybe you are looking for

  • Performance and data werehouse

    Hello!  How enabling data warehouse affects on performance of the SQL server and what recommendations exists about it? Thank you!

  • Pass blank value to a parameter

    Hello Experts I am using Crystal Reports 2008 with SAP BW as a data source. SAP query has a string parameter created in it, and I want to apply condition on that parameter. If user enters a value which is not in that parameter (field) then report sho

  • Publishing an alternate layout in InDesign CS6

    I've create a 3 page sample file to show a client how they can re-purpose their InDesign print file and use InDesign to create alternate layouts. I've created a test file that has 2 alternate layouts. One is the standard iPad portrait view and the ot

  • Why is there space under the copyright bar on the contact page?

    why is there space under the copyright bar on the contact page? all the other pages in the site fit flush at the bottom except on the contact and coaching page. does anyone know why? thanks http://worldmarketdesign.com/strategic/contact.html

  • MathType integration broken after Snow Leopard Upgrade

    MathType 6.0 no longer seems to work with Keynote after I upgraded to Snow Leopard. When I try to insert an equation from MathType it inserts the equation, but only as a HUGE image file that has to be resized. Worse, I can no longer edit equations in