Cant load schema-based xml-file to default table via http/ftp

Hola,
we are running ORACLE 10.2.0.3.0 with installed XML-DB.
HTTP- and ftp-listeners where configured successfully, we are able to register a designed XSD-file within XML-DB. Autogen types and tables where set "true" and default table for root object within xsd and several type objects where also created successful.
Oracle DB is running on a Linux environment, it is possible to establish a WEBDAV-connection to this machine via my Windows client.
As far as I understood the Oracle examples, there should be some kind of automatism. Putting a valid (and registered via xsi:noNamespaceSchemaLocation=<pointing to xsd-file>) XML file into my WEBDAV folder should create an XML object in the XML repository AND create a dataset in the default table.
Last thing doesn´t work.
Any idea?!

Can you try this simple example
SQL> set echo on
SQL> spool testase.log
SQL> --
SQL> connect / as sysdba
Connected.
SQL> --
SQL> set define on
SQL> set timing on
SQL> --
SQL> define USERNAME = OTN
SQL> --
SQL> def PASSWORD = &USERNAME
SQL> --
SQL> def USER_TABLESPACE = USERS
SQL> --
SQL> def TEMP_TABLESPACE = TEMP
SQL> --
SQL> drop user &USERNAME cascade
  2  /
old   1: drop user &USERNAME cascade
new   1: drop user OTN cascade
User dropped.
Elapsed: 00:00:00.18
SQL> grant create any directory, drop any directory, connect, resource, alter session, create view to &USERNAME identified by &PASSWORD
  2  /
old   1: grant create any directory, drop any directory, connect, resource, alter session, create view to &USERNAME identified by &PASSWORD
new   1: grant create any directory, drop any directory, connect, resource, alter session, create view to OTN identified by OTN
Grant succeeded.
Elapsed: 00:00:00.09
SQL> alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
  2  /
old   1: alter user &USERNAME default tablespace &USER_TABLESPACE temporary tablespace &TEMP_TABLESPACE
new   1: alter user OTN default tablespace USERS temporary tablespace TEMP
User altered.
Elapsed: 00:00:00.00
SQL> connect &USERNAME/&PASSWORD
Connected.
SQL> --
SQL> -- create or replace directory XMLDIR as '&XMLDIR'
SQL> -- /
SQL> var SCHEMAURL    varchar2(256)
SQL> VAR XMLSCHEMA    CLOB;
SQL> VAR INSTANCE     CLOB;
SQL> VAR DOCPATH      VARCHAR2(700)
SQL> --
SQL> set define off
SQL> --
SQL> alter session set events='31098 trace name context forever'
  2  /
Session altered.
Elapsed: 00:00:00.01
SQL> begin
  2    :SCHEMAURL:= 'http://oradb4.min.local:8080/public/CSBF/xsd/CSBF_Vergabemeldung_Formular.xsd';
  3    :XMLSCHEMA :=
  4  '<?xml version="1.0" encoding="UTF-8"?>
  5  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" version="1.0" xdb:storeVarrayAsTable="true">
  6     <xs:simpleType name="string_5">
  7             <xs:restriction base="xs:string"><xs:maxLength value="5"/></xs:restriction>
  8     </xs:simpleType>
  9     <xs:simpleType name="string_6">
10             <xs:restriction base="xs:string"><xs:maxLength value="6"/></xs:restriction>
11     </xs:simpleType>
12     <xs:simpleType name="string_8">
13             <xs:restriction base="xs:string"><xs:maxLength value="8"/></xs:restriction>
14     </xs:simpleType>
15     <xs:simpleType name="string_20">
16             <xs:restriction base="xs:string"><xs:maxLength value="20"/></xs:restriction>
17     </xs:simpleType>
18     <xs:simpleType name="string_30">
19             <xs:restriction base="xs:string"><xs:maxLength value="30"/></xs:restriction>
20     </xs:simpleType>
21     <xs:simpleType name="string_60">
22             <xs:restriction base="xs:string"><xs:maxLength value="60"/></xs:restriction>
23     </xs:simpleType>
24     <xs:element name="CSBF_Vergabemeldung" xdb:defaultTable="CSBF_VERGABE_INFO_XML">
25             <xs:complexType>
26                     <xs:sequence>
27                             <xs:element name="CSBF_Vergabemeldung_Info">
28                                     <xs:complexType>
29                                             <xs:sequence>
30                                                     <xs:element name="Identnummer" type="string_30"/>
31                                                     <xs:element name="Version_CSBF_Vergabevermerk_Formular" type="string_30"/>
32                                                     <xs:element name="Fertigstellung_Vergabevermerk" type="xs:date"/>
33                                             </xs:sequence>
34                                     </xs:complexType>
35                             </xs:element>
36                             <xs:element name="Strassenbaudienststelle">
37                                     <xs:complexType>
38                                             <xs:sequence>
39                                                     <xs:element name="Kennung" type="string_8"/>
40                                                     <xs:element name="Strassenbau_Organisation_Bezeichnung" type="string_60"/>
41                                                     <xs:element name="Adresszeile_2" type="string_60" minOccurs="0"/>
42                                                     <xs:element name="Adresszeile_3" type="string_60" minOccurs="0"/>
43                                                     <xs:element name="Adresszeile_4" type="string_60" minOccurs="0"/>
44                                                     <xs:element name="Strasse" type="string_60"/>
45                                                     <xs:element name="PLZ" type="string_6"/>
46                                                     <xs:element name="Ort" type="string_60"/>
47                                                     <xs:element name="NUTS" type="string_5"/>
48                                                     <xs:element name="Telefon" type="string_20" minOccurs="0"/>
49                                                     <xs:element name="Fax" type="string_20" minOccurs="0"/>
50                                                     <xs:element name="E_Mail" type="string_30"/>
51                                             </xs:sequence>
52                                     </xs:complexType>
53                             </xs:element>
54                     </xs:sequence>
55             </xs:complexType>
56     </xs:element>
57  </xs:schema>';
58    :DOCPATH := '/public/CSBF_Vergabemeldung.xml';
59    :INSTANCE :=
60  '<?xml version="1.0" encoding="ISO-8859-15"?>
61  <CSBF_Vergabemeldung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://oradb4.min.local:8080/public/CSBF/xsd/CSBF
_Vergabemeldung_Formular.xsd">
62     <CSBF_Vergabemeldung_Info>
63             <Identnummer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Identnummer>
64             <Version_CSBF_Vergabevermerk_Formular>xxxxxxxxxxxxxxxx</Version_CSBF_Vergabevermerk_Formular>
65             <Fertigstellung_Vergabevermerk>1900-01-01</Fertigstellung_Vergabevermerk>
66     </CSBF_Vergabemeldung_Info>
67     <Strassenbaudienststelle>
68             <Kennung>xxxxx</Kennung>
69             <Strassenbau_Organisation_Bezeichnung>xxxxxxx</Strassenbau_Organisation_Bezeichnung>
70             <Adresszeile_2>xxxxxxxxxxxxx</Adresszeile_2>
71             <Adresszeile_3>xxxxxxxxxxxxxx</Adresszeile_3>
72             <Adresszeile_4>xxxxxxxxxxxxxxxxx</Adresszeile_4>
73             <Strasse>xxxxxxxxxxxxxx</Strasse>
74             <PLZ>xxxxx</PLZ>
75             <Ort>xxxxxxxxxxxxxx</Ort>
76             <NUTS>xxxxx</NUTS>
77             <Telefon>xxxxxxxxxxx</Telefon>
78             <Fax>xxxxxxxxxxx</Fax>
79             <E_Mail>[email protected]</E_Mail>
80     </Strassenbaudienststelle>
81  </CSBF_Vergabemeldung>';
82  end;
83  /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
SQL> begin
  2    dbms_xmlschema.registerSchema
  3    (
  4      schemaurl       => :SCHEMAURL,
  5      schemadoc       => :XMLSCHEMA,
  6      local           => TRUE,
  7      genTypes        => TRUE,
  8      genBean         => FALSE,
  9      genTables       => TRUE
10    );
11  end;
12  /
PL/SQL procedure successfully completed.
Elapsed: 00:00:03.80
SQL> desc CSBF_VERGABE_INFO_XML
Name                                                                                      Null?    Type
TABLE of SYS.XMLTYPE(XMLSchema "http://oradb4.min.local:8080/public/CSBF/xsd/CSBF_Vergabemeldung_Formular.xsd" Element "CSBF_Vergabemeldung") STORAGE Object-rel
ational TYPE "CSBF_Vergabemeldung3270_T"
SQL> --
SQL> declare
  2    V_RESULT BOOLEAN;
  3  begin
  4     if dbms_xdb.existsResource(:DOCPATH) then
  5       dbms_xdb.deleteResource(:DOCPATH);
  6    end if;
  7    V_RESULT := DBMS_XDB.CREATERESOURCE(:DOCPATH,:INSTANCE);
  8    COMMIT;
  9  end;
10  /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.79
SQL> select count(*)
  2    from CSBF_VERGABE_INFO_XML
  3  /
         1
Elapsed: 00:00:00.15
SQL> set long 10000 pages 0 lines 160
SQL> --
SQL> select object_value
  2    from CSBF_VERGABE_INFO_XML
  3  /
<?xml version="1.0" encoding="WINDOWS-1252"?>
<CSBF_Vergabemeldung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://oradb4.min.local:8080/public/CSBF/xsd/CSBF_Verg
abemeldung_Formular.xsd">
  <CSBF_Vergabemeldung_Info>
    <Identnummer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Identnummer>
    <Version_CSBF_Vergabevermerk_Formular>xxxxxxxxxxxxxxxx</Version_CSBF_Vergabevermerk_Formular>
    <Fertigstellung_Vergabevermerk>1900-01-01</Fertigstellung_Vergabevermerk>
  </CSBF_Vergabemeldung_Info>
  <Strassenbaudienststelle>
    <Kennung>xxxxx</Kennung>
    <Strassenbau_Organisation_Bezeichnung>xxxxxxx</Strassenbau_Organisation_Bezeichnung>
    <Adresszeile_2>xxxxxxxxxxxxx</Adresszeile_2>
    <Adresszeile_3>xxxxxxxxxxxxxx</Adresszeile_3>
    <Adresszeile_4>xxxxxxxxxxxxxxxxx</Adresszeile_4>
    <Strasse>xxxxxxxxxxxxxx</Strasse>
    <PLZ>xxxxx</PLZ>
    <Ort>xxxxxxxxxxxxxx</Ort>
    <NUTS>xxxxx</NUTS>
    <Telefon>xxxxxxxxxxx</Telefon>
    <Fax>xxxxxxxxxxx</Fax>
    <E_Mail>[email protected]</E_Mail>
  </Strassenbaudienststelle>
</CSBF_Vergabemeldung>
Elapsed: 00:00:01.99
SQL> select xdburitype(:DOCPATH).getXML()
  2    from DUAL
  3  /
<?xml version="1.0" encoding="WINDOWS-1252"?>
<CSBF_Vergabemeldung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://oradb4.min.local:8080/public/CSBF/xsd/CSBF_Verg
abemeldung_Formular.xsd">
  <CSBF_Vergabemeldung_Info>
    <Identnummer>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Identnummer>
    <Version_CSBF_Vergabevermerk_Formular>xxxxxxxxxxxxxxxx</Version_CSBF_Vergabevermerk_Formular>
    <Fertigstellung_Vergabevermerk>1900-01-01</Fertigstellung_Vergabevermerk>
  </CSBF_Vergabemeldung_Info>
  <Strassenbaudienststelle>
    <Kennung>xxxxx</Kennung>
    <Strassenbau_Organisation_Bezeichnung>xxxxxxx</Strassenbau_Organisation_Bezeichnung>
    <Adresszeile_2>xxxxxxxxxxxxx</Adresszeile_2>
    <Adresszeile_3>xxxxxxxxxxxxxx</Adresszeile_3>
    <Adresszeile_4>xxxxxxxxxxxxxxxxx</Adresszeile_4>
    <Strasse>xxxxxxxxxxxxxx</Strasse>
    <PLZ>xxxxx</PLZ>
    <Ort>xxxxxxxxxxxxxx</Ort>
    <NUTS>xxxxx</NUTS>
    <Telefon>xxxxxxxxxxx</Telefon>
    <Fax>xxxxxxxxxxx</Fax>
    <E_Mail>[email protected]</E_Mail>
  </Strassenbaudienststelle>
</CSBF_Vergabemeldung>
Elapsed: 00:00:00.11
SQL>

Similar Messages

  • Ora-30930 by uploading schema based xml file

    i got an ora-30930 xml node 'mst' (type = attribute)
    does not support operation.
    I got this after i try to convert the schema from structured to unstructured storage
    <xs:attribute name="mst" type="xs:dateTime" use="required"/>

    i got an ora-30930 xml node 'mst' (type = attribute)
    does not support operation.
    I got this after i try to convert the schema from structured to unstructured storage
    <xs:attribute name="mst" type="xs:dateTime" use="required"/>

  • Loading records from .csv file to SAP table via SAP Program

    Hi,
    I have a .csv file with 132,869 records and I am trying to load it to an SAP table with a customized SAP program.
    After executing the program, only 99,999 records are being loaded into the table.
    Is there some setting to define how many records can be loaded into a table? Or what else could be the problem?
    Pls advice.
    Thanks!!!

    hi Arun ,
    A datasource need a extract structure to fetch data .It is nothing but a temp table to hold data.
    First you need to create atable in SE11 with fields coming from CSV file.
    Then you need to write a report program to read you CSV file and populate your table in BW .
    Then you can create a datasource on top of this table .
    After that replicate and load data at PSA and use to upper flow.
    Regards,
    Jaya Tiwari

  • Data Load from XML file to Oracle Table

    Hi,
    I am trying to load data from XML file to Oracle table using DBMS_XMLStore utility.I have performed the prerequisites like creating the directory from APPS user, grant read/write to directory, placing the data file on folder on apps tier, created a procedure ‘insertXML’ to load the data based on metalink note (Note ID: 396573.1 How to Insert XML by passing a file Instead of using Embedded XML). I am running the procedure thru below anonymous block  to insert the data in the table.
    Anonymous block
    declare
      begin
      insertXML('XMLDIR', 'results.xml', 'employee_results');
      end;
    I am getting below error after running the anonymous block.
    Error :     ORA-22288: file or LOB operation FILEOPEN failed”
    Cause :   The operation attempted on the file or LOB failed.
    Action:   See the next error message in the error stack for more detailed
               information.  Also, verify that the file or LOB exists and that
               the necessary privileges are set for the specified operation. If
               the error still persists, report the error to the DBA.
    I searched this error on metalink and found DOC ID 1556652.1 . I Ran the script provided in the document. PFA the script.
    Also, attaching a document that list down the steps that I have followed.
    Please check and let me know if I am missing something in the process. Please help to get this resolve.
    Regards,
    Sankalp

    Thanks Bashar for your prompt response.
    I ran the insert statement but encountered error,below are the error details. statement.
    Error report -
    SQL Error: ORA-22288: file or LOB operation FILEOPEN failed
    No such file or directory
    ORA-06512: at "SYS.XMLTYPE", line 296
    ORA-06512: at line 1
    22288. 00000 -  "file or LOB operation %s failed\n%s"
    *Cause:    The operation attempted on the file or LOB failed.
    *Action:   See the next error message in the error stack for more detailed
               information.  Also, verify that the file or LOB exists and that
               the necessary privileges are set for the specified operation. If
               the error still persists, report the error to the DBA.
    INSERT statement I ran
    INSERT INTO employee_results (USERNAME,FIRSTNAME,LASTNAME,STATUS)
        SELECT *
        FROM XMLTABLE('/Results/Users/User'
               PASSING XMLTYPE(BFILENAME('XMLDIR', 'results.xml'),
               NLS_CHARSET_ID('CHAR_CS'))
               COLUMNS USERNAME  NUMBER(4)    PATH 'USERNAME',
                       FIRSTNAME  VARCHAR2(10) PATH 'FIRSTNAME',
                       LASTNAME    NUMBER(7,2)  PATH 'LASTNAME',
                       STATUS  VARCHAR2(14) PATH 'STATUS'
    Regards,
    Sankalp

  • 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

  • Loading XML file into DB Table

    Hi
    I m quite new to the loading XML file into database table.
    It will be great if anyone could guide me to through.
    Now,
    i have an XML file which has to be loaded into the DB table.
    what are the steps involved in doing this. How do i go from here ??
    your help is greatly appriciated ???
    Thank you so much!!
    -Shashi

    OK - Although you really should read the XMLDB FAQ on this forum, here is some sample code of ONE of the ways of doing it
    (there are multiple ways - and this is not the most simple one)
    Based on Oracle 11gR1
    -- sqlplus /nolog
    clear screen
    set termout on
    set feed on
    set lines 40
    set long 10000000
    set serveroutput on
    set lines 100
    set echo on
    connect / as sysdba
    col filename for a80
    col xml      for a80
    -- Create schema “OTN”
    drop user OTN cascade;
    purge dba_recyclebin;
    create user OTN identified by OTN;
    grant dba, xdbadmin to OTN;
    EXECUTE dbms_java.grant_permission( 'OTN', 'java.io.FilePermission','G:\OTN\xmlstore','read' );
    prompt pause
    pause
    clear screen
    -- Create directory
    connect OTN/OTN;
    show user
    drop directory OTN_USE_CASE;
    CREATE directory OTN_USE_CASE AS 'G:\OTN\xmlstore';
    SELECT extract((XMLTYPE(bfilename('OTN_USE_CASE','ABANDA-20030407215829881GMT.xml'),NLS_CHARSET_ID('AL32UTF8'))),'*') AS "XML"
    from   dual;
    prompt pause
    pause
    clear screen
    -- Directory Listing - Tom Kyte
    create global temporary table DIR_LIST
    ( filename varchar2(255) )
    on commit delete rows
    create or replace
      and compile java source named "DirList"
    as
    import java.io.*;
    import java.sql.*;
    public class DirList
    {public static void getList(String directory)
                       throws SQLException
    {   File path = new File( directory );
        String[] list = path.list();
        String element;
        for(int i = 0; i < list.length; i++)
        {   element = list;
    #sql { INSERT INTO DIR_LIST (FILENAME)
    VALUES (:element) };
    create or replace procedure get_dir_list( p_directory in varchar2 )
    as language java
    name 'DirList.getList( java.lang.String )';
    prompt pause
    pause
    clear screen
    -- The content of the global temporary table
    exec get_dir_list( 'G:\OTN\xmlstore' );
    select * from dir_list;
    -- "COMMIT" will clear / truncate the global temporary table...
    prompt pause
    pause
    clear screen
    -- Combined: Reading XML content from multiple XML files
    commit;
    exec get_dir_list( 'G:\OTN\xmlstore' );
    select * from dir_list where filename like '%.xml'
    and rownum <= 10;
    prompt pause
    pause
    clear screen
    select extract((XMLTYPE(bfilename('OTN_USE_CASE',dl.filename),NLS_CHARSET_ID('AL32UTF8'))),'*') AS "XML"
    from dir_list dl
    where dl.filename like '%.xml' and rownum <= 2;
    prompt pause
    pause
    clear screen
    -- If you can select it you can insert it...
    -- drop table OTN_xml_store purge;
    create table OTN_xml_store of xmltype
    xmltype store as binary xml
    commit;
    exec get_dir_list( 'G:\OTN\xmlstore' );
    set time on timing on
    insert into OTN_xml_store
    select XMLTYPE(bfilename('OTN_USE_CASE',dl.filename),NLS_CHARSET_ID('AL32UTF8')) AS "XML"
    from dir_list dl
    where dl.filename like '%.xml';
    set time off timing off
    commit;
    select count(*) from OTN_xml_store;
    prompt pause
    pause
    clear screen
    -- If you can select it you can create resources and files
    set time on timing on
    commit;
    exec get_dir_list( 'G:\OTN\xmlstore' );
    select count(*) from dir_list where filename like '%.xml';
    set serveroutput on size 10000
    DECLARE
    XMLdoc XMLType;
    res BOOLEAN;
    v_foldername varchar2(4000) := '/public/OTN/';
    cursor c1
    is
    select dl.filename FNAME
    , XMLTYPE(bfilename('OTN_USE_CASE',dl.filename),NLS_CHARSET_ID('AL32UTF8')) XMLCONTENT
    from dir_list dl
    where dl.filename like '%.xml'
    and rownum <= 100;
    BEGIN
    -- Create XDB repository Folder
    if (dbms_xdb.existsResource(v_foldername))
    then
    dbms_xdb.deleteResource(v_foldername,dbms_xdb.DELETE_RECURSIVE_FORCE);
    end if;
    res:=DBMS_XDB.createFolder(v_foldername);
    -- Create XML files in the XDB Repository
    for r1 in c1
    loop
    if (DBMS_XDB.CREATERESOURCE(v_foldername||r1.fname, r1.xmlcontent))
    then
    dbms_output.put_line(v_foldername||r1.fname);
    null;
    else
    dbms_output.put_line('Loop Exception :'||sqlerrm);
    end if;
    end loop;
    EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line('Others Exception: '||sqlerrm);
    END;
    set time off timing off
    commit;
    prompt pause
    pause
    clear screen
    -- FTP and HTTP
    clear screen
    prompt
    prompt *** FTP - Demo ***
    prompt
    prompt pause
    pause
    host ftp
    -- open localhost 2100
    -- user OTN OTN
    -- cd public
    -- cd OTN
    -- ls
    -- bye
    clear screen
    prompt
    prompt *** Microsoft Internet Explorer - Demo ***
    prompt
    prompt pause
    pause
    host "C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://OTN:OTN@localhost:8080/public/OTN/
    prompt pause
    pause
    -- Accessing the XDB Repository content via Resource View
    -- Selecting content from a resource via XBDUriType
    clear screen
    prompt set long 300
    set long 300
    prompt Relative Path - (path)
    SELECT path(1) as filename
    FROM RESOURCE_VIEW
    WHERE under_path(RES, '/public/OTN', 1) = 1
    and rownum <= 10
    prompt pause
    pause
    clear screen
    prompt Absolute Path - (any_path)
    select xdburitype(any_path).getClob() as xml
    FROM RESOURCE_VIEW
    WHERE under_path(RES, '/public/OTN', 1) = 1
    and rownum <= 1;
    prompt pause
    pause
    -- CLEANUP ENVIRONMENT
    clear screen
    prompt
    prompt >>>>> Clean UP !!! <<<<<<
    prompt
    prompt Cleanup environment and drop user...!!!
    prompt
    pause
    clear screen
    conn / as sysdba
    alter session set current_schema=OTN;
    begin
    dbms_xdb.deleteResource('/public/OTN',dbms_xdb.DELETE_RECURSIVE_FORCE);
    commit;
    end;
    alter session set current_schema=sys;
    drop user OTN cascade;
    Based on http://www.liberidu.com/blog/?p=1053

  • Most efficient way to load XML file data into tables

    I have a complex XML file running into MBs. I want to load it's data into 7-8 tables.
    Which way will be better:
    1) Use SQL Loader to actually load directly into the 7-8 tables directly by modifying the control card.
    Is this really possible and feasible? I am not even sure about it
    2) Load data as XML Type in a table and register it. Then extract from there to load into various tables.
    Please help. I have to find the most efficient way of doing it.
    Regards,
    Sudhir

    Yes it is possible to use SQL*Loader to parse and load XML, but that is not what it was designed for and so is not recommended. You also don't need to register a schema, just to load/store/parse XML in the DB either.
    So where does that leave you?
    Some options
    {thread:id=410714} (see page 2)
    {thread:id=1090681}
    {thread:id=1070213}
    Those talk some about storage options and reading in XML from disk and parsing XML. They should also give you options to consider. Without knowing more about your requirements for the effort, it is difficult to give specific advice. Maybe your 7-8 tables don't exist and so using Object Relational Storage for the XML would be the best solution as you can query/update tables that Oracle creates based off the schema associated to the XML. Maybe an External Table definition works better for reading the XML into the system because this process will happen just once. Maybe using WebDAV makes more sense for loading XML to be parsed (I don't have much experience with this, just know it is possible from what I've read on the forums). Also, your version makes a difference as you have different options available depending upon the version of Oracle.
    Hope all that helps as a starter.
    Edited by: A_Non on Jul 8, 2010 4:31 PM
    A great example, see the answers by mdrake in {thread:id=1096784}

  • Delete schema based xml fails

    I am attempting to delete xml files through the following command:
    delete from
    (select 1 from resource_view
    where UNDER_PATH(res, '/home/user1/forms', 1) = 1
    order by depth(1) desc);
    /home/user1/forms contains over 200,000 schema-based xml documents that I wish to drop. The schema-based documents previously were loaded properly and showed 0kb size. Their contents are accessible from views and can be used in sql statements.
    The command has been running over 24 hours with the server's cpu maxed at 100%. The server is Windows Server 2003 and the database is 9.2.0.4. There are no relevant invalid objects in the database.
    Could the command be failing (or simply taking a really, really long time) because I should not have loaded all the forms into a single folder? I have been able to run the above command on folders with 5 or ten xml documents in them.

    Hi people,
    Our results (YMMV - and if it does then tell us how) made us VERY reluctant to drop structures that weren't empty - period.
    Try it for yourselves but our experience was basically any live dropping of XML schema structures has a fairly good chance of being incomplete or not allowing the same schema to be reconstituted in a lights-out environment... (ie. didn't completely remove types / tables from dictionary so we got "<name> already exists" errors on schema re-registration, requiring an instance restart - but with no guarantees ).
    BTW : DELETE FROM gives MASSIVE amounts of redo ...and takes MASSIVE amounts of time with the hierarchy triggers enabled [I suspect the moderately evil UNDER_PATH operator is hidden in the delete hierarchy trigger] (hence the copy out stuff to be kept - then TRUNCATE option).
    And with schema mapped hierarchy enabled structures - dropping the tables left dangling pointers from the resource entry to the now non-existent schema table structures. These dangling pointers destroyed access to that set of resources (and any resources PAST evaluation of those rows in RESOURCE_VIEW [a previous rant of mine on "exception objects" explains why]. (Until a dbms_xdb.deleteresource( <path>, dbms_xdb.*force) was used on each resource).
    So to update or extend our hierarchy enabled schema our recipe became :
    Disable receiver processes
    Disable hierarchy triggers
    for r in
    ( select *
    from resource_view r
    where r.any_path like || '<app_root>/%'
    order by instr( r.any_path, '.' ) desc
    -- hack to delete files before folders
    loop
    dbms_xdb.deleteresource(
    r.any_path,
    dbms_xdb.delete_resource
    end loop;
    Delete the rows from the xml type tables. (TRUNCATE each table from bottom up).
    Drop the schema with dbms_xmlschema.delete_invalidate;
    Drop all xml related user types and tables (by naming convention in our XML Schema xdb:SQLType* / xdb:SQLName* attributes).
    Register new schema and transform / insert stored XML values into tables again.
    NOTE : In our case we copy those rows / resources we need to keep to other CLOB based structures first and reconstitute them after the schema is back - thankfully our profile allows this.
    Hope this helps,
    Lachlan

  • Load data from XML files into BI

    Hi All,
    Can any one guide me through the steps which involve in loading data from XML files into BI?
    Thanks
    Santosh

    Hi James,
    I have followed upto step No: 12 .
    Please could you let me know how to link the XML file on my local drive to BI,
    I am not able to find figure out where to specify the path of the XML file to be loaded into BI.
    Thanks In Advance
    Regards,
    San
    1. Create a Infosource(ZIS), with transfer structure in accordance with the structure in the XML file. (You can open the XML file with MS Excel.This way you can get to know the structure).
    2. Activate the transfer rules.
    3. After activation ;from the Menu Bar , Select Extras>Create BW Datasource with SOAP connection.
    4.Now Activate the Infosurce again, this creates an XML based Datasource(6AXXX...)
    5.These steps would create two sub nodes under the Infosource(ZIS).
    6.Select Myself system and create a data package and execute it run in Init mode(without Data Transfer).
    7. This would create an entry in RSA7(BW delta Queue)
    8. Again create another Delta Infopackage under it, and run it. Now the Datasource(6AXXXXXX..) would turn green in RSA7.
    9.In Function builder(SE37) select your FM( do a search ,F4, on the datasource 6AXXX....) .
    10.Inside this RFC based FM , from the Menu Bar select Utilities>more Utilities>Create Web services>From Function module.
    11.A wizard will guide you through the next steps .
    12.once this is done a Web serrvice would be enabled in WSADMIN. Select your FM and execute it.
    13.From here you can upload the data from XML file into BW delta queue.
    Edited by: Santosh on Nov 30, 2008 2:22 PM

  • Schema based xml db

    how to create schema based xml database..i have tried but showing errors
    how to register the xml schema......

    LOL - "being the ACE" - hereby some of the things you could do
    an example
    clear screen
    -- Drop user TEST if it exists - Cleaning Up First
    conn / as sysdba
    set echo on
    set termout on
    set feed on
    drop user test cascade;
    purge dba_recyclebin;
    create user test identified by test;
    grant xdbadmin, dba to test;
    connect test/test
    set echo on
    set termout on
    set feed on
    var schemaPath varchar2(256)
    var schemaURL  varchar2(256)
    pause
    clear screen
    begin
      :schemaURL := 'http://www.myserver.com/root.xsd';
      :schemaPath := '/public/root.xsd';
    end;
    -- Create an XML Schema root.xsd in directory /public/
    declare
      res boolean;
      xmlSchema xmlType := xmlType(
    '<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xdb="http://xmlns.oracle.com/xdb"
                xmlns="http://www.myserver.com/root.xsd" targetNamespace="http://www.myserver.com/root.xsd"
                elementFormDefault="qualified"
                attributeFormDefault="unqualified"
                xdb:storeVarrayAsTable="true">
    <xs:element name="ROOT" xdb:defaultTable="ROOT_TABLE" xdb:maintainDOM="false">
      <xs:annotation>
       <xs:documentation>Example XML Schema</xs:documentation>
      </xs:annotation>
      <xs:complexType xdb:maintainDOM="false">
       <xs:sequence>
        <xs:element name="ID" type="xs:integer" xdb:SQLName="ID"/>
        <xs:element ref="INFO" xdb:SQLInline="false" />
       </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="INFO" xdb:SQLName="INFO_TYPE">
      <xs:complexType xdb:maintainDOM="false">
       <xs:sequence>
        <xs:element name="INFO_ID" type="xs:integer" xdb:SQLName="TYPE_INFO_ID"/>
        <xs:element name="INFO_CONTENT"
                    xdb:SQLName="TYPE_INFO_CONTENT" type="xs:string"/>
       </xs:sequence>
      </xs:complexType>
    </xs:element>
    </xs:schema>');
    begin
    if (dbms_xdb.existsResource(:schemaPath)) then
        dbms_xdb.deleteResource(:schemaPath);
    end if;
    res := dbms_xdb.createResource(:schemaPath,xmlSchema);
    end;
    pause
    clear screen
    -- Selecting repository files and folders via XDBUriType
    select xdbURIType ('/public/root.xsd').getClob()
    from   dual;
    pause
    clear screen
    begin
      :schemaURL := 'http://www.myserver.com/root.xml';
      :schemaPath := '/public/root.xml';
    end;
    -- Create an XML Document root.xml in directory /public/
    declare
      res boolean;
      xmlSchema xmlType := xmlType(
    '<?xml version="1.0" encoding="UTF-8"?>
    <ROOT xmlns="http://www.myserver.com/root.xsd">
    <ID>0</ID>
    <INFO>
       <INFO_ID>0</INFO_ID>
       <INFO_CONTENT>Text</INFO_CONTENT>
    </INFO>
    </ROOT>');
    begin
    if (dbms_xdb.existsResource(:schemaPath)) then
        dbms_xdb.deleteResource(:schemaPath);
    end if;
    res := dbms_xdb.createResource(:schemaPath,xmlSchema);
    end;
    pause
    clear screen
    -- Selecting repository files and folders via XDBUriType
    select xdbURIType ('/public/root.xml').getClob()
    from   dual;
    pause
    clear screen
    -- Delete an XML schema in the registry if it exists
    call DBMS_XMLSCHEMA.deleteSchema('http://www.myserver.com/root.xsd', 4);
    commit;
    select * from tab;
    alter session set events='31098 trace name context forever';
    BEGIN
    DBMS_XMLSCHEMA.registerSchema
    (SCHEMAURL => 'http://www.myserver.com/root.xsd',
      SCHEMADOC => xdbURIType('/public/root.xsd').getClob(),
      LOCAL     => FALSE, -- local
      GENTYPES  => TRUE,  -- generate object types
      GENBEAN   => FALSE, -- no java beans
      GENTABLES => TRUE,  -- generate object tables
      OWNER     => USER
    END;
    commit;
    select * from tab;
    pause
    clear screen
    -- Insert some data with XDBURIType
    DECLARE
       XMLData xmlType := xmlType(xdbURIType ('/public/root.xml').getClob());
    BEGIN
      for i in 1..10
      loop
          insert into ROOT_TABLE
          VALUES
          (XMLData);
      end loop;
    END;
    commit;
    -- randomize the data a little
    update ROOT_TABLE
    set object_value = updateXML(object_value,
                                '/ROOT/ID/text()',
                                substr(round(dbms_random.value*100),0,2)
    update ROOT_TABLE
    set object_value = updateXML(object_value,
                                '/ROOT/INFO/INFO_ID/text()',
                                substr(round(dbms_random.value*100),0,2)
    commit;
    pause
    clear screen
    -- End Result
    select count(*) from root_table;
    select * from root_table where rownum < 5;

  • How to load a XML file into a table using PL/SQL

    Hi Guru,
    I have a requirement, that i have to create a procedure or a package in PL/SQL to load  XML file into a table.
    How we can achive this.

    ODI_NewUser wrote:
    Hi Guru,
    I have a requirement, that i have to create a procedure or a package in PL/SQL to load  XML file into a table.
    How we can achive this.
    Not a perfectly framed question. How do you want to load the XML file? Hoping you want to parse the xml file and load it into a table you can do this.
    This is the xml file
    karthick% cat emp_details.xml
    <?xml version="1.0"?>
    <ROWSET>
    <ROW>
      <EMPNO>7782</EMPNO>
      <ENAME>CLARK</ENAME>
      <JOB>MANAGER</JOB>
      <MGR>7839</MGR>
      <HIREDATE>09-JUN-1981</HIREDATE>
      <SAL>2450</SAL>
      <COM>0</COM>
      <DEPTNO>10</DEPTNO>
    </ROW>
    <ROW>
      <EMPNO>7839</EMPNO>
      <ENAME>KING</ENAME>
      <JOB>PRESIDENT</JOB>
      <HIREDATE>17-NOV-1981</HIREDATE>
      <SAL>5000</SAL>
      <COM>0</COM>
      <DEPTNO>10</DEPTNO>
    </ROW>
    </ROWSET>
    You can write a query like this.
    SQL> select *
      2    from xmltable
      3         (
      4            '/ROWSET/ROW'  passing xmltype
      5            (
      6                 bfilename('SDAARBORDIRLOG', 'emp_details.xml')
      7               , nls_charset_id('AL32UTF8')
      8            )
      9            columns empno    number      path 'EMPNO'
    10                  , ename    varchar2(6) path 'ENAME'
    11                  , job      varchar2(9) path 'JOB'
    12                  , mgr      number      path 'MGR'
    13                  , hiredate varchar2(20)path 'HIREDATE'
    14                  , sal      number      path 'SAL'
    15                  , com      number      path 'COM'
    16                  , deptno   number      path 'DEPTNO'
    17         );
         EMPNO ENAME  JOB              MGR HIREDATE                    SAL        COM     DEPTNO
          7782 CLARK  MANAGER         7839 09-JUN-1981                2450          0         10
          7839 KING   PRESIDENT            17-NOV-1981                5000          0         10
    SQL>

  • How to load a XML file into a table

    Hi,
    I've been working on Oracle for many years but for the first time I was asked to load a XML file into a table.
    As an example, I've found this on the web, but it doesn't work
    Can someone tell me why? I hoped this example could help me.
    the file acct.xml is this:
    <?xml version="1.0"?>
    <ACCOUNT_HEADER_ACK>
    <HEADER>
    <STATUS_CODE>100</STATUS_CODE>
    <STATUS_REMARKS>check</STATUS_REMARKS>
    </HEADER>
    <DETAILS>
    <DETAIL>
    <SEGMENT_NUMBER>2</SEGMENT_NUMBER>
    <REMARKS>rp polytechnic</REMARKS>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>3</SEGMENT_NUMBER>
    <REMARKS>rp polytechnic administration</REMARKS>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>4</SEGMENT_NUMBER>
    <REMARKS>rp polytechnic finance</REMARKS>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>5</SEGMENT_NUMBER>
    <REMARKS>rp polytechnic logistics</REMARKS>
    </DETAIL>
    </DETAILS>
    <HEADER>
    <STATUS_CODE>500</STATUS_CODE>
    <STATUS_REMARKS>process exception</STATUS_REMARKS>
    </HEADER>
    <DETAILS>
    <DETAIL>
    <SEGMENT_NUMBER>20</SEGMENT_NUMBER>
    <REMARKS> base polytechnic</REMARKS>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>30</SEGMENT_NUMBER>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>40</SEGMENT_NUMBER>
    <REMARKS> base polytechnic finance</REMARKS>
    </DETAIL>
    <DETAIL>
    <SEGMENT_NUMBER>50</SEGMENT_NUMBER>
    <REMARKS> base polytechnic logistics</REMARKS>
    </DETAIL>
    </DETAILS>
    </ACCOUNT_HEADER_ACK>
    For the two tags HEADER and DETAILS I have the table:
    create table xxrp_acct_details(
    status_code number,
    status_remarks varchar2(100),
    segment_number number,
    remarks varchar2(100)
    before I've created a
    create directory test_dir as 'c:\esterno'; -- where I have my acct.xml
    and after, can you give me a script for loading data by using XMLTABLE?
    I've tried this but it doesn't work:
    DECLARE
    acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
    BEGIN
    insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
    select x1.status_code,
            x1.status_remarks,
            x2.segment_number,
            x2.remarks
    from xmltable(
      '/ACCOUNT_HEADER_ACK/HEADER'
      passing acct_doc
      columns header_no      for ordinality,
              status_code    number        path 'STATUS_CODE',
              status_remarks varchar2(100) path 'STATUS_REMARKS'
    ) x1,
    xmltable(
      '$d/ACCOUNT_HEADER_ACK/DETAILS[$hn]/DETAIL'
      passing acct_doc as "d",
              x1.header_no as "hn"
      columns segment_number number        path 'SEGMENT_NUMBER',
              remarks        varchar2(100) path 'REMARKS'
    ) x2
    END;
    This should allow me to get something like this:
    select * from xxrp_acct_details;
    Statuscode status remarks segement remarks
    100 check 2 rp polytechnic
    100 check 3 rp polytechnic administration
    100 check 4 rp polytechnic finance
    100 check 5 rp polytechnic logistics
    500 process exception 20 base polytechnic
    500 process exception 30
    500 process exception 40 base polytechnic finance
    500 process exception 50 base polytechnic logistics
    but I get:
    Error report:
    ORA-06550: line 19, column 11:
    PL/SQL: ORA-00932: inconsistent datatypes: expected - got NUMBER
    ORA-06550: line 4, column 2:
    PL/SQL: SQL Statement ignored
    06550. 00000 -  "line %s, column %s:\n%s"
    *Cause:    Usually a PL/SQL compilation error.
    and if I try to change the script without using the column HEADER_NO to keep track of the header rank inside the document:
    DECLARE
    acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
    BEGIN
    insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
    select x1.status_code,
            x1.status_remarks,
            x2.segment_number,
            x2.remarks
    from xmltable(
      '/ACCOUNT_HEADER_ACK/HEADER'
      passing acct_doc
      columns status_code    number        path 'STATUS_CODE',
              status_remarks varchar2(100) path 'STATUS_REMARKS'
    ) x1,
    xmltable(
      '/ACCOUNT_HEADER_ACK/DETAILS'
      passing acct_doc
      columns segment_number number        path 'SEGMENT_NUMBER',
              remarks        varchar2(100) path 'REMARKS'
    ) x2
    END;
    I get this message:
    Error report:
    ORA-19114: error during parsing the XQuery expression: 
    ORA-06550: line 1, column 13:
    PLS-00201: identifier 'SYS.DBMS_XQUERYINT' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    ORA-06512: at line 4
    19114. 00000 -  "error during parsing the XQuery expression: %s"
    *Cause:    An error occurred during the parsing of the XQuery expression.
    *Action:   Check the detailed error message for the possible causes.
    My oracle version is 10gR2 Express Edition
    I do need a script for loading xml files into a table as soon as possible, Give me please a simple example for understanding and that works on 10gR2 Express Edition
    Thanks in advance!

    The reason your first SQL statement
    select x1.status_code,
            x1.status_remarks,
            x2.segment_number,
            x2.remarks
    from xmltable(
      '/ACCOUNT_HEADER_ACK/HEADER'
      passing acct_doc
      columns header_no      for ordinality,
              status_code    number        path 'STATUS_CODE',
              status_remarks varchar2(100) path 'STATUS_REMARKS'
    ) x1,
    xmltable(
      '$d/ACCOUNT_HEADER_ACK/DETAILS[$hn]/DETAIL'
      passing acct_doc as "d",
              x1.header_no as "hn"
      columns segment_number number        path 'SEGMENT_NUMBER',
              remarks        varchar2(100) path 'REMARKS'
    ) x2
    returns the error you noticed
    PL/SQL: ORA-00932: inconsistent datatypes: expected - got NUMBER
    is because Oracle is expecting XML to be passed in.  At the moment I forget if it requires a certain format or not, but it is simply expecting the value to be wrapped in simple XML.
    Your query actually runs as is on 11.1 as Oracle changed how that functionality worked when 11.1 was released.  Your query runs slowly, but it does run.
    As you are dealing with groups, is there any way the input XML can be modified to be like
    <ACCOUNT_HEADER_ACK>
    <ACCOUNT_GROUP>
    <HEADER>....</HEADER>
    <DETAILS>....</DETAILS>
    </ACCOUNT_GROUP>
      <ACCOUNT_GROUP>
      <HEADER>....</HEADER>
      <DETAILS>....</DETAILS>
      </ACCOUNT_GROUP>
    </ACCOUNT_HEADER_ACK>
    so that it is easier to associate a HEADER/DETAILS combination?  If so, it would make parsing the XML much easier.
    Assuming the answer is no, here is one hack to accomplish your goal
    select x1.status_code,
            x1.status_remarks,
            x3.segment_number,
            x3.remarks
    from xmltable(
      '/ACCOUNT_HEADER_ACK/HEADER'
      passing acct_doc
      columns header_no      for ordinality,
              status_code    number        path 'STATUS_CODE',
              status_remarks varchar2(100) path 'STATUS_REMARKS'
    ) x1,
    xmltable(
      '$d/ACCOUNT_HEADER_ACK/DETAILS'
      passing acct_doc as "d",
      columns detail_no      for ordinality,
              detail_xml     xmltype       path 'DETAIL'
    ) x2,
    xmltable(
      'DETAIL'
      passing x2.detail_xml
      columns segment_number number        path 'SEGMENT_NUMBER',
              remarks        varchar2(100) path 'REMARKS') x3
    WHERE x1.header_no = x2.detail_no;
    This follows the approach you started with.  Table x1 creates a row for each HEADER node and table x2 creates a row for each DETAILS node.  It assumes there is always a one and only one association between the two.  I use table x3, which is joined to x2, to parse the many DETAIL nodes.  The WHERE clause then joins each header row to the corresponding details row and produces the eight rows you are seeking.
    There is another approach that I know of, and that would be using XQuery within the XMLTable.  It should require using only one XMLTable but I would have to spend some time coming up with that solution and I can't recall whether restrictions exist in 10gR2 Express Edition compared to what can run in 10.2 Enterprise Edition for XQuery.

  • How can i load Client side XML file to Table

    Hi,
    How can i load the all the XML files (near 10,000 files) available in client machine to the XML table .
    I did try with directrory list in the Webutility demo form, but when the number of file is near to 1,500 its giving error.
    Please suggest the best method to implement my requirements.
    1. XML fies are in a folder in end users machine(Windows OS)
    2. I need to load all the XML files to table (Oracle Database is in Unix)
    I am using forms 10g
    Thanks in advance.
    Rizly

    Hi,
    What is the error you are getting when you reach 1,500 records? Can you post it? You mentioned you are using the webutil to load them. How you are loading? From the client machine you are loading to the database directly? Can you post the code you are using for that?
    -Arun

  • Inserting a row in a schema-based xml type column

    i have problems while inserting a row in a schema-based xml type column
    it reports an error(schema and elemnt do not match)
    although they are matching if anyone can try it
    and if it worked plz send me the example

    SQL> DESC XML_TAB;
    Name Null? Type
    XML XMLTYPE
    SQL> INSERT INTO XML_TAB
    2 VALUES
    3 (xmltype('<request>
    4 <filter>(extshortname=bhagat)</filter>
    5 <attributes>dn</attributes>
    6 <context/>
    7 <scope>subtree</scope>
    8 </request>'));
    1 row created.
    If your problem persists,post ur lines of code..
    Good luck!!!
    Bhagat

  • Load data in xml file into Pdf form created by LiveCycle Designer

    I want to load data in xml file into Pdf form when Pdf opened and Form field will be filled with data from xml file .I try to use $host.importdata("filename.xml"); But i could not find suitable place to run my code. Can anyone give me some advice? thank you.

    Hi,
    extract your xml and then you can use insert all clause.
    here's very small example on 10.2.0.1.0
    SQL> create table table1(id number,val varchar2(10));
    Table created.
    SQL> create table table2(id number,val varchar2(10));
    Table created.
    SQL> insert all
      2  into table1 values(id,val)
      3  into table2 values(id2,val2)
      4  select extractValue(x.col,'/a/id1') id
      5        ,extractValue(x.col,'/a/value') val
      6        ,extractValue(x.col,'/a/value2') val2
      7        ,extractValue(x.col,'/a/id2') id2
      8  from (select xmltype('<a><id1>1</id1><value>a</value><id2>2</id2><value2>b</value2></a>') col from dual) x;
    2 rows created.
    SQL> select * from table1;
            ID VAL                                                                 
             1 a                                                                   
    SQL> select * from table2;
            ID VAL                                                                 
             2 b                                                                    Ants

Maybe you are looking for

  • Write to measurement file note: x values only guaranteed for one data signal?

    Hi everyone, Attached is a vi I have developed... When I save the data my .lvm file has a note in the header than says" X values only guaranteed for Power (Filtered)".... Power is one of 9 signals... I am not sure what this note means, but I assume t

  • Yet another one that cannot get video to work (most of the time)

    Hi all, I have been reviewing as many questions in this general forum to see if I could answer my own question, but I quickly found out that there is a lot of stuff out there that is a little over my head. So, I feel I need some help and you may need

  • Problem  in merging java script and java code

    hi, i want to merge java and javascript code but it is giving some surprising results. this is my code: <script language = "javascript"> <% String query_result= "1"; String buttontype=""; buttontype=(String)session.getAttribute("buttontype"); query_r

  • Dynamic select list dependency

    Hello, I want to have two select lists populated dynamically by a query, where contents of one list depend on the choice made in the other list. For example I have tables CATEGORY (ID, NAME) and SUBCATEGORY (ID, NAME, CAT_ID). I created one List of V

  • Will flash be available for iphone?

    I'm workin on html5 (edge+dreamweaver) and it still got problems, if flash will be available for iphone we can continue our way with flash?