XML + CLOB

Hello

I do a mini-fonction to read a CLOB xml:

create the table XmlTest of XmlType;

DECLARE

localXML ClOB;

BEGIN

localXML: = ' <? XML version = "1.0" encoding = "utf-8"? > < message >
< Pippo id = "33" status = '0' / >
< Pippo id = "34" status = "1" / >
< id Pluto = "35" status = '0' / >
< id Pluto = '36' status = "1" / >
< Barcode id = "asfjhsfjkhwegjk22312312" status = '0' / >
< Barcode id = "sdklfjosgkdfgh596895354" status = '0' / > < / messages > ';

INSERT INTO XMLTEST VALUES (XMLTYPE (localXML));

END;

When I do:
SELECT x.getCLobVal (XmlTest) x;

The CLOB create a tag perfect for my job.

So, I want to insert the id value and status in another table (id is a varchar2 and status is a number). Is possible?

I use Oracle Database 10 g Enterprise Edition Release 10.2.0.4.0

Thank you.

Your Oracle client version must be incompatible with the server.

Could check you?

Tags: Oracle Development

Similar Questions

  • Reading XML clob field

    Hi guys

    I want to read XML file that is stored as a clob in the database table (test_clob) in column (xml_file).

    <?xml version="1.0" encoding="UTF-8"?>
    <!--Sample XML file generated by xmlspy.com)-->
    <mslv-sa:orEvent xmlns:mslv-sa="http://www.metav.com/oss/Sctivation/2003" xmlns:tls="http://www.meolv.com/oss/Sctivation/2003" xmlns:co="http://java.sun.com/products/oss/xml/Common" xmlns:sa="http://java.sun.com/products/oss/xml/Sivation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <co:applicationDN/>
         <co:eventTime>2006-07-17T03:21:13</co:eventTime>
         <sa:currentState>closed.completed</sa:currentState>
         <sa:orderKey>
              <co:applicationDN/>
              <co:type/>
              <sa:primaryKey>SUAUG20_1ADSLCON-268554296-JOB-ISPSERVICE23</sa:primaryKey>
         </sa:orderKey>
         <sa:reason/>
         <mslv-sa:externalSystemId/>
         <mslv-sa:eventId>36</mslv-sa:eventId>
         <mslv-sa:eventStatus>1</mslv-sa:eventStatus>
         <mslv-sa:except>N</mslv-sa:except>
         <mslv-sa:rollbackExcept>N</mslv-sa:rollbackExcept>
         <mslv-sa:services>
              <mslv-sa:item>
                   <mslv-sa:serviceKey>
                        <co:applicationContext>
                             <co:factoryClass/>
                             <co:url/>
                             <co:systemProperties/>
                        </co:applicationContext>
                        <co:applicationDN/>
                        <co:type>ACT_POSTPAID</co:type>
                        <sa:primaryKey>aitorc01_5100719489001</sa:primaryKey>
                        <mslv-sa:serviceSequenceNumber>1</mslv-sa:serviceSequenceNumber>
                   </mslv-sa:serviceKey>
                   <mslv-sa:serviceState>active.completed</mslv-sa:serviceState>
              </mslv-sa:item>
         </mslv-sa:services>
    </mslv-sa:orderCompleteEvent>
    I use the following query just to read data from the file.
    select x.time
    FROM test_clob
            ,XMLTABLE('/mslv-sa:orderCompleteEvent/co:applicationDN/' 
                  PASSING XMLTYPE(test_clob.xml_file)
                  COLUMNS time VARCHAR2(100)PATH '/mslv-sa:orderCompleteEvent/mslv-sa:orderCompleteEvent/co:eventTime')x
    But its giving following error
    21:22:53  LPX-00801: XQuery syntax error at 'EOF'
    21:22:53  1   /mslv-sa:orderCompleteEvent/co:applicationDN/
    Please provide details


    See you soon

    Sexy

    Hi Vanessa,

    I see several issues here.

    -L' example of XML document you gave is not well-formed.
    -Some XPath expressions are false, i.e. they address anything in the document.
    -You must also declare the namespaces that you use in XMLTable.

    Assuming that the root element is actually "mslv - its: orderCompleteEvent", it should be better:

    SELECT x.eventtime
    FROM test_clob t
       , XMLTable(
           XMLNamespaces(
             'http://www.metav.com/oss/Sctivation/2003' as "mslv-sa"
           , 'http://java.sun.com/products/oss/xml/Common' as "co"
           )
         , '/mslv-sa:orderCompleteEvent'
           PASSING XMLTYPE(t.xml_file)
           COLUMNS eventtime timestamp PATH 'co:eventTime'
         ) x
    ;
    
  • Add a new node to an existing XML (CLOB) data type

    Hi guys,.

    I have a table with one of his field as a CLOB data type that stores a XML here, now I need to add an additional node to the XML.

    <?xml version="1.0" encoding="UTF-8"?><alert>
     
         <tab0 comment="section in XSL component" name="Initial Information">
              <details>     
                   <Priority>0001</Priority>
                   <DateVRUClaimInitiated>2010-06-29</DateVRUClaimInitiated>
              
              </details>
              <contacts comment="grid in XSL component">
                   many child nodes here
              </contacts>               
         </tab0>
     
         <tab1 comment="section in XSL component" name="Additional Information">
              <details comment="list collection in XSL component">
                   <Channel1>123</Channel1>
              </details>
              <IPAddresses>
                   Many child nodes here
              </IPAddresses>          
              <ANIPhones>
                   Many child nodes here
              </ANIPhones>
         </tab1>
    </alert>
    Here, in this xml file, I need to add this node < / canal2 >... so my xml should look like
    <?xml version="1.0" encoding="UTF-8"?><alert>
     
         <tab0 comment="section in XSL component" name="Initial Information">
              <details>     
                   <Priority>0001</Priority>
                   <DateVRUClaimInitiated>2010-06-29</DateVRUClaimInitiated>
              
              </details>
              <contacts comment="grid in XSL component">
                   many child nodes here
              </contacts>               
         </tab0>
     
         <tab1 comment="section in XSL component" name="Additional Information">
              <details comment="list collection in XSL component">
                   <Channel1>123</Channel1></Channel2>
              </details>
              <IPAddresses>
                   Many child nodes here
              </IPAddresses>          
              <ANIPhones>
                   Many child nodes here
              </ANIPhones>
         </tab1>
    </alert>
    I can do using an update or something?

    but it converts my CLOB to ORAXML.

    then use getclobval():

    select insertchildxml(xml, '/alert/tab1/details', 'Channel2' ,xmltype('')).getclobval() xml from t
    
  • Req SQL syntax. to extract the value XML [CLOB]

    Hello

    I'll have the XML column in my table.

    I have XML value in CLOB data type. I had an experience using extract XML from SQL syntax.

    But I am unable to extract this file. I need to meet tagname value XML who gave example below.

    For example, the name of the Table is A
    Column name is A1

    The value of column given below here.

    <? XML version = "1.0" encoding = "ISO-8859-1? > < tags > < tag > < tagname > {docval} < / tagname > < tagvalue > ESPRefNotice < / tagvalue > < / tag > < tag > < tagname > {: inputvalue} < / tagname > < tagvalue > 3216 < / tagvalue > < / tag > < tag > < tagname > {officename} < / tagname > < tagvalue > ssvofficename < / tagvalue > < / tag > < / tags >

    Kindly help me on this to extract the value 'tagname' or 'tagvalue' according to the above xml data.

    Thank you
    SELECT warehouse_name warehouse,
       warehouse2."Water", warehouse2."Rail"
       FROM warehouses,
       XMLTABLE('/Warehouse'
          PASSING warehouses.warehouse_spec
          COLUMNS
             "Water" varchar2(6) PATH '/Warehouse/WaterAccess',
             "Rail" varchar2(6) PATH '/Warehouse/RailAccess')
          warehouse2;
    

    check this exp in the documentation
    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14200/functions228.htm#CIHGGHFB

    the warehouse_spec is of type xmltype. So in your case it is clob then you need to add like what I did in the query...
    XmlType ()...

    Hope that explains everything...

    Ravi Kumar

  • How to extract a value of sql xml column clob data

    Hi guys,.

    I need help with the following. I have a column with data type xml (clob data). I need to extract the information in the < RI4 > tag and the < RI6 > tag.
    I truncated the data, but there is a repetition of the < RI4 > tag and consequenty internal to that tag RI6. However, each tag RI4 and RI6 has different data.

    I would be grateful if you can help me with this:

    <a xsi:schemaLocation="som location.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:somlocation">
      <b>Some stuff here</b>
      <c>
      <someinfo>blah</someinfo>
      <someinfo2>blah2</someinfo2>
      </c>
      <EffectiveDateTime>2015-10-01T00:00:00+10:00</EffectiveDateTime>
      <CurrencyCode>AUD</CurrencyCode>
      <RequiredInformation>
      <RequiredInformation2>
      <RequiredInformation3>
      <RI4>someinfo</RI4>
      <RI5>
      <RI6>
      <a1>1</a1>
      <b1>9.13</b1>
      </RI6>
      <RI6>
      <a1>2</a1>
      <b1>8.75</b1>
      </RI6>
      <RI6>
      <a1>3</a1>
      <b1>78.90</b1>
      </RI6>
      <RI6>
      <a1>4</a1>
      <b1>200</b1>
      </RI6>
      <RI6>
      <a1>5</a1>
      <b1>17.59</b1>
      </RI6>
      </RI5>
      </RequiredInformation3>
      </RequiredInformation2>
      </RequiredInformation>
      </a>
    

    I think that since it's the repetition I might need to make some sort of PL/SQL programming, but I really need help here to build this announcement also a way to extract the information.

    Any help would be greatly appreciated.

    Kind regards

    You can parse your XML like this

    SQL> with t
      2  as
      3  (
      4  select
      5  '
      6      Some stuff here
      7      
      8          blah
      9          blah2
     10      
     11      2015-10-01T00:00:00+10:00
     12      AUD
     13      
     14          
     15              
     16                  someinfo
     17                  
     18                      
     19                          1
     20                          9.13
     21                      
     22                      
     23                          2
     24                          8.75
     25                      
     26                      
     27                          3
     28                          78.90
     29                      
     30                      
     31                          4
     32                          200
     33                      
     34                      
     35                          5
     36                          17.59
     37                      
     38                  
     39              
     40          
     41      
     42  ' xml_str
     43    from dual
     44   )
     45  select t1.ri4, t2.a1, t2.b1
     46    from t
     47       , xmltable
     48         (
     49            xmlnamespaces(default 'urn:somlocation', 'http://www.w3.org/2001/XMLSchema-instance' as "xsi")
     50         ,  '/a/RequiredInformation/RequiredInformation2/RequiredInformation3' passing xmltype(t.xml_str)
     51            columns
     52               ri4 varchar2(10) path 'RI4'
     53             , ri5 xmltype path 'RI5'
     54         ) t1
     55       , xmltable
     56         (
     57            xmlnamespaces(default 'urn:somlocation')
     58          , '/RI5/RI6' passing t1.ri5
     59            columns
     60               a1 number path 'a1'
     61             , b1 number path 'b1'
     62         ) t2;
    
    RI4                A1         B1
    ---------- ---------- ----------
    someinfo            1       9.13
    someinfo            2       8.75
    someinfo            3       78.9
    someinfo            4        200
    someinfo            5      17.59
    
    SQL>
    
  • Any ideas to convert oracle XML or CLOB type collections

    Hi all

    Have actively tried to convert collections of oracle XML or CLOB objects to be stored in the table of database for logging purposes. Tried to look for clues. You can help.

    Here is the script that I created temporarily to try the code:

    DROP TABLE insert_table;

    CREATE TABLE insert_table
    (
    Serial NUMBER (9),
    first name VARCHAR2 (35),
    name VARCHAR2 (35),
    E-mail VARCHAR2 (65).
    home_phone NUMBER (10),
    work_phone NUMBER (10),
    CONSTRAINT serial_pk PRIMARY KEY (serial)
    );

    DELETE FROM temporary_table;

    INSERT INTO temporary_table VALUES (1, "Arthur", "Wright", "[email protected]", 5439021232, NULL);
    INSERT INTO temporary_table VALUES (2, 'will', "Ball", "[email protected]", 4379021000, NULL);
    INSERT INTO temporary_table VALUES (3, 'Kerwin","Mike","[email protected]", 9018236733, 6621232356);
    INSERT INTO temporary_table VALUES (4, 'Krammer', 'Cone', '[email protected]', NULL, 3238483323);

    DROP TYPE obj_detail FORCE
    /
    DROP TYPE obj_detail_list FORCE
    /

    CREATE or REPLACE TYPE obj_detail AS OBJECT
    (Serial NUMBER (9),
    full_name VARCHAR2 (70).
    Department VARCHAR2 (10),
    assessment VARCHAR2 (1))
    /

    CREATE or REPLACE TYPE obj_detail_list AS TABLE OF THE obj_detail
    /

    DECLARE
    CTX DBMS_XMLGEN.ctxHandle;
    XML CLOB.
    obj_det_list obj_detail_list: = obj_detail_list ();
    BEGIN
    SELECT obj_detail (series,
    last_name. first name,
    "Software."
    « A »)
    LOOSE COLLECTION obj_det_list
    Of insert_table;

    CTX: = DBMS_XMLGEN.newContext ("SELECT * FROM TABLE (obj_det_list)'");
    Dbms_output.put_line (ctx);

    XML: = DBMS_XMLGEN.getXML (ctx);
    Dbms_output.put_line (xml);

    DBMS_XMLGEN.closeContext (ctx);
    END;
    /

    Hello

    "" "You're almost there. '"

    The error you have is because you try to refer to a local variable (the collection) in a static SQL string.
    A solution would be to use a binding in the query variable, but only VARCHAR2 with DBMS_XMLGEN are allowed.

    However, you can bind the collection using a REF CURSOR:

    SQL> DECLARE
      2    ctx          DBMS_XMLGEN.ctxHandle;
      3    xml          CLOB;
      4    obj_det_list obj_detail_list := obj_detail_list();
      5
      6    rc           sys_refcursor;
      7
      8  BEGIN
      9
     10   SELECT obj_detail(serial,
     11                     last_name || first_name,
     12                     'Software',
     13                     'A')
     14   BULK COLLECT INTO obj_det_list
     15   FROM temp_table;
     16
     17   OPEN rc FOR SELECT * FROM TABLE(obj_det_list);
     18
     19   ctx := DBMS_XMLGEN.newContext(rc);
     20   xml := DBMS_XMLGEN.getXML (ctx);
     21   DBMS_OUTPUT.put_line (xml);
     22
     23   DBMS_XMLGEN.closeContext(ctx);
     24   CLOSE rc;
     25
     26  END;
     27  /
    
    
    
     
      1
      WrightArthur
      Software
      A
     
     
      2
      BallWill
      Software
      A
     
     
      3
      MikeKerwin
      Software
      A
     
     
      4
      ConeKrammer
      Software
      A
     
    
    
    PL/SQL procedure successfully completed
     
    

    You don't even need DBMS_XMLGEN:

    DECLARE
    
      xml          CLOB;
      obj_det_list obj_detail_list;
    
    BEGIN
    
     SELECT obj_detail(serial,
                       last_name || first_name,
                       'Software',
                       'A')
     BULK COLLECT INTO obj_det_list
     FROM temp_table;
    
     SELECT xmltype(cursor(select * from table(obj_det_list))).getClobVal()
     INTO xml
     FROM dual;
    
     DBMS_OUTPUT.put_line (xml);
    
    END;
    /
    
  • Advice on the use of APEX_JSON with a CLOB in the body as a string

    Hello all and thanks for any help in advance.

    I have the task of liaising with a 3rd party API via JSON to send information to our database.  First warning is the HOST for us is not and race so I have no way of properly this test until tomorrow, but I wanted to ask this question to try to overcome a potential problem.

    In the body of the JSON object, we must add a chunk of xml (already created/kept or can be created on the fly) and it must be validated on as a long string.  Now, this question is that the string can be up to 20000 characters long so when its processed is stored as a CLOB in the database (not made by me).

    Now my thoughts early to do this was to create a procedure allowing certain parameters get the relevant piece of data and xml stored as a CLOB.  Then and that's where I maybe need some tips, follow these steps.

    This host requires JSON in this format

    {

    'batchcode': 1234562,

    'XML string': 'THIS WILL BE a MASSIVE XML STRING',

    ""bounding ":" ",".

    "ID": "123456465",

    'field1 ':

    .

    .

    etc.

    }

    We currently have a few apex applications so I got a good look at the documentation and allows to generate the required using JSON:

    Thus to collect information of input parameters

    APEX_JSON. INITIALIZE_CLOB_OUTPUT;

    APEX_JSON. OPEN_OBJECT();

    APEX_JSON. WRITE ("batchcode," value from database");

    APEX_JSON. WRITE ("XML string ', our xml database that is stored as a CLOB string");

    APEX_JSON. WRITE (bounding "," value of database");

    APEX_JSON. WRITE ('ID', 'Value of database');

    .

    .

    .

    etc.

    APEX_JSON. CLOSE_OBJECT();

    Then validate using endpoint:

    APEX_WEB_SERVICE. () MAKE_REST_REQUEST

    p_url = > 'URL of the end point. "

    p_http_method = > 'MESSAGE ',.

    p_username = > API_USER,

    p_password = > API_KEY,.

    p_body = > apex_json.get_clob_output

    );

    Now assuming that my method is correct only the APEX_JSON. WRITING literally accept its entry as a type CLOB and he will be able to properly analyze or will it arrive at a mansion that will actually write the string itself?

    Edit I found that if I APEX_JSON. WRITE ("XML", "CLOB table column") that it exported the CLOB but not in the format I want.  This is due to the fact that my CLOB has characters like <>etc in II and the output is burning out in unicode, so for example <? XML version = "1.0" encoding = "UTF-8"? "> as stored in the object CLOB becomes \u003C?xml version=\"1.0\ ' encoding =------"UTF - 8\ '? \u003E\n in the output using APEX_JSON. To write.

    The only other way to do it, I think it is so divided in pieces as follows:

    SELECT ROWNUM as XML_PIECE_NO, TO_CHAR (SUBSTR (a.xmldoc, (ROWNUM-1) * 4000, 4000)) AS SECTION

    Of ast_xmldata one

    CONNECT (ROWNUM-1) * 4000 < = LENGTH (a.xmldoc)

    Then maybe concat in the JSON long xml string field.

    I hope I have explained what I want to do but if not please respond any help will be greatly appreciated.

    Concerning

    Post edited by: K4E

    EDIT I CAME FROM WITH a SOLUTION

    Post edited by: K4E - found solution 02/04/2016

    Thanks for the response of Christian, logical exit that way.

    Through some trial and error, I found a solution to my problem that seems effective enough without having to worry about unicode characters written.  There is seemingly a procedure without papers in the APEX_JSON package called apex_json.write_raw that does what it says.  All I had to do then was to use escape characters in my CLOB for things like "then I get a few good valid JSON in the format of the API, I work with love."

    Hope this helps someone else with the situation.

    K4E

  • How to open a cursor-based XML data?

    Hello

    I use Oracle database 11g.

    I have to write a stored procedure accepts an input of XML CLOB.

    After receiving the CLOB, I am required to open a cursor to XML tags and then treat each record in "XML".

    I don't know how to do this.

    Recalled the following link: http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb03usg.htm#CEGDJEEI

    But could not meet the requirement.

    Appreciate your suggestions.

    Amar

    something

    create or replace procedure prc (inxml clob, xml_cursor out  sys_refcursor)
    ...
    
    x xmltype;
    
    begin
    
       select xmltype(inxml) into x from dual;
    
       open xml_cursor for
             select extractvalue(x,'/tag') from dual;
    
    ...
    

    Published by: Alexandr on November 21, 2011 01:36

  • Extract an embedded pdf file of xml

    Hello
    I have an xml file containing an embedded report pdf

    <? XML version = "1.0" encoding = "ISO-8859-1? >
    < dbtx >
    < response >
    < transaction_rs >
    < PDF_REPORT >
    JVBERi0xLjMKJaqrrK0KNCAwIG9iago8PCAvVHlwZSAvSW5mbwovUHJvZHVjZXIgKG51bGwpID4+CmVuZG9iago1IDAgb2JqCjw8IC9MZW5ndGggMTQzOCAvRmlsdGVyIC9GbGF0ZURlY29kZSAKID4+CnN0cmVhbQp4nK1Y23LiRhB95yv0tPFWzOzcR/OILxBSvgXIVqVCHmQsE1WB5Mhia8tfnyOEpJG4KVvZfTAW6nO6e/p09/hq1rud9f7pMY8Sn+KfRz0vXXrNB5OR11NEa+sZLYhW0mOSESO419eKCKO8NPSee7/1rjrDMWmIpKwCNPhe6x/H48wnXJsKTzBGfMaOAeZ2FA7kCFvAxoNtvIISavwKUGmi7dGALV7OETyVf9jlinEiYblY976M18y7Sf6fiJRpefBlyDymwDt77eX0swXCWeaI+M+8CkhaInzpzdbenxc3n64+e31ufLx/cbtJk7cwiOsn18n6LVhkn72/vNmv/9ljbokx1mPWJ5Irr88E+YEjlaxIeQUHGOHvw+Xh61307WPdywGXxDesyMEkeHtL0iypw/4WvW+CVfTxERRPhcqTLqR3QXX9VrB0TDhldJemPTL8ZHxH9rBZh6lj9xI5gM/PSRysw7hg5RRFtmWd3A77Gb5wz6HM0rL6NCrFSTXhSJTyGWHQVj8HP1f4hanWmiiOHEvCjPBYYfjqVviuwG1V39qg5kBX1Ddv1vf+SVjiS14RKfy0OWGDaVvJsjjLOpuFocHJcVMkc/ yCXEWv0SL4iJI4rDP5qf44TdbrII2SXe6 + DBEWbULjcIXwPS0FKGwBfTUZ3PxRo4xng7vxwEGd3LVOuwTBYSu7A3kK4iQN1vDPQYpf8HuWpFGzCA6CUWi89GgSvS / +.
    < / PDF_REPORT >
    < / answer >
    < / transaction_rs >
    < / dbtx >

    I am able to store complements ti xml file database (10 gr 2) I want the in to extract the pdf part to an operating system file using utl_file.
    How can I extract and convert to binary (?)

    Best regards

    user1749972 wrote:
    So, if I understand it, the steps are

    (1) load the xml files in db.
    (2) extracts the xml clob data and stored in a clob
    (3) convert the clob blob
    (4) to decode the blob in the base-64
    (5) print the blob converted to the os file

    (1) to load the xml files in db
    (2) extracts the xml clob data and stored in a clob
    (3) pass the clob to the base64 binary data, and then store the result in blob
    (4) write blob data to o/s using UTL_FILE writing in raw mode.

  • table col name get the details of the table column and inserting of values depending on the data type of the column

    Hello

    I am train to write a procedure where I would spend the table as a parameter name and then the code would determine it is column names, and then he would insert records in each column depending on the data type. could someone help me with this.

    Thank you

    SM

    Hello

    Perhaps you need to dummy data just for the table.

    Here is my exercise

    create or replace
    procedure generate_rows(p_table_name varchar2, p_count number)
    is
      --
      function insert_statement(p_table_name varchar2) return clob
      is
        l_columns clob;
        l_expressions clob;
        l_sql clob default
          'insert into p_table_name (l_columns) select l_expressions from dual connect by level <= :p_count';
      begin
        select
          -- l_columns
          listagg(lower(column_name), ',') within group (order by column_id),
          -- l_expressions
          listagg(
            case
            when data_type = 'DATE'
              then  'sysdate'
            when data_type like 'TIMESTAMP%'
              then  'systimestamp'
            when data_type = 'NUMBER'
              then  replace('dbms_random.value(1,max)',
                      'max', nvl(data_precision - data_scale, data_length)
                    )
            when data_type = 'VARCHAR2'
              then  replace(q'|dbms_random.string('a',data_length)|',
                      'data_length', data_length
                    )
            else
                    'NULL'
            end, ',') within group (order by column_id)
        into
          l_columns,
          l_expressions
        from user_tab_columns
        where table_name = upper(p_table_name);
        --
        l_sql := replace(replace(replace(l_sql,
          'p_table_name', p_table_name),
          'l_columns', l_columns),
          'l_expressions', l_expressions);
        -- debug
        dbms_output.put_line(l_sql);
        --
        return l_sql;
      end;
    begin
      execute immediate insert_statement(p_table_name) using p_count;
    end;
    /
    
    -- test
    create table mytable(
      id number(4,0),
      txt varchar2(10),
      tstz timestamp with time zone,
      dt date,
      xml clob
    )
    ;
    set serveroutput on
    exec generate_rows('mytable', 10);
    select id, txt from mytable
    ;
    drop procedure generate_rows
    ;
    drop table mytable purge
    ;
    
    Procedure GENERATE_ROWS compiled
    Table MYTABLE created.
    PL/SQL procedure successfully completed.
    
    insert into mytable (id,txt,tstz,dt,xml) select dbms_random.value(1,4),dbms_random.string('a',10),systimestamp,sysdate,NULL from dual connect by level <= :p_count
            ID TXT
    ---------- ----------
             3 WnSbyiZRkC
             2 UddzkhktLf
             1 zwfWigHxUp
             2 VlUMPHHotN
             3 adGCKDeokj
             3 CKAHGfuHAY
             2 pqsHrVeHwF
             3 FypZMVshxs
             3 WtbsJPHMDC
             3 TlxYoKbuWp
    
    10 rows selected
    
    Procedure GENERATE_ROWS dropped.
    Table MYTABLE dropped.
    

    and here is the vision of Tom Kyte for the same https://asktom.oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:2151576678914

    Edit: to improve my code, it must use p_count as bind as Tom.

  • error when you try to compile this stored procedure

    I get this error message

    Testing_sp PROCEDURE compiled
    WARNING: the execution is completed with warning

    can I do this...

    See the err;

    and:

    17/23 PL/SQL: ORA-00932: inconsistent data types: expected NUMBER obtained -
    16/1 PL/SQL: statement ignored

    I can't understand why.
    I checked all the columns at TEST_TMP_TBL
    they are all varchar2





    CREATE OR REPLACE PROCEDURE testing_sp
    AS

    XML CLOB.
    xml2 VARCHAR2 (150);

    BEGIN


    SELECT ' <? XML version = "1.0" encoding ="' | utl_i18n.map_charset (value) | "" ? > '
    IN xml2
    OF nls_database_parameters
    Setting WHERE = 'NLS_CHARACTERSET ";


    SELECT
    XMLElement ("APPLICATION",
    XMLAttributes ('TEST', "Name")
    , XMLElement ("TESTPAGE",
    XMLAgg)
    XMLElement ("PROJ",
    XMLAttributes (NVL("ORDERS",' ') AS ORDERS,
    NVL("SUB_PART",' ') AS SUB_PART,
    NVL("SUB_SUB",' ') AS SUB_SUB,
    NVL("DESC",' ') AS DESC,
    NVL("ADD",' ') AS ADD,
    NVL("NUMB",' ') YOU NUMB
    ),

    XMLForest)
    NVL("ORDERS",' ') STOPPED,
    NVL("SUB_PART",' ') AS SUB_PART,
    NVL("SUB_SUB",' ') AS SUB_SUB,
    NVL("DESC",' ') AS DESC,
    NVL("ADD",' ') AS ADD,
    NVL("NUMB",' ') YOU NUMB
    )
    )
    )
    )
    )
    in xml
    OF TEST_TMP_TBL;



    DBMS_XSLPROCESSOR.clob2file (xml2: xml, 'dir', 'testing.xml');



    EXCEPTION
    while others then
    Rollback;

    end;



    Let me know if you have an idea, I would almost give my first born of an answer to this (not really sure)

    SQL > DECLARE
    2 v_xml CLOB.
    3 - v_xml XMLTYPE.
    4 BEGIN
    5 SELECT XMLELEMENT ("Emp") IN v_xml FROM DUAL;
    6 DBMS_OUTPUT. Put_line (v_xml);
    7 END;
    8
    9.
    SELECT XMLELEMENT ("Emp") IN the v_xml FROM DUAL;
    *
    ERROR on line 5:
    ORA-06550: line 5, column 21:
    PL/SQL: ORA-00932: inconsistent data types: expected NUMBER obtained -
    ORA-06550: line 5, column 2:
    PL/SQL: SQL statement ignored

    now change the variable for XMLTYPE data type;
    SQL > DECLARE
    2 - v_xml CLOB.
    3 v_xml XMLTYPE.
    4 BEGIN
    5 SELECT XMLELEMENT ("Emp") IN v_xml FROM DUAL;
    6 DBMS_OUTPUT. Put_line (v_xml);
    7 END;
    8
    9.

    PL/SQL procedure successfully completed.

  • InPlace schema evolution error: ORA-31166: error code internal etc...

    Hello

    I have a table in which I will be storing an XMLTYPE column based on an XML schema. I use the following version of the database:
    SQL*Plus: Release 11.2.0.1.0 Production on Thu Aug 23 18:20:12 2012
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Now, when I run my test InPlace Schema Evolution, I get the following error message:

    < font color = "red" >
    ORA-31166: internal error code to handle ignorable attributes
    < / make >

    I built a re-producable case of test for the purpose of this post on the forum. For starters, I have a database scheme grants the following privileges:
    DIRECTLY GRANTED SYSTEM PRIVS
    =============================
    CREATE TRIGGER
    ALTER SESSION
    CREATE TABLE
    
    EXECUTE PRIVS (SYS-OWNED PACKAGES)
    =============
    EXECUTE ON DBMS_XMLSCHEMA
    
    ROLES GRANTED
    =============
    CONNECT
    DATA_ROLE
    
    DATA_ROLE DDL
    =============
    create role DATA_ROLE not identified;
    grant create database link to DATA_ROLE;
    GRANT CREATE MATERIALIZED VIEW TO DATA_ROLE;
    grant create procedure to DATA_ROLE;
    grant create sequence to DATA_ROLE;
    GRANT CREATE SYNONYM TO DATA_ROLE;
    grant create table to DATA_ROLE with admin option;
    grant create trigger to DATA_ROLE;
    grant create view to DATA_ROLE;
    grant select any dictionary to DATA_ROLE;
    All other scripts are run as the database schema. For the purposes of clarity, let's call the {*} TEST_DB_SCHEMA {*}. I follow the steps below in this scheme:

    H3. 1. run this PL/SQL script to record the Version 1 of my XML schema:
    PROMPT -------------------------------;
    PROMPT INITIAL XML SCHEMA REGISTRATION;
    PROMPT -------------------------------;
    
    SET SERVEROUTPUT ON
    SET FEEDBACK OFF
    
    DECLARE
       l_xsd_url_con CONSTANT VARCHAR2(60) := 'http://home/xsd/test_binXML_v1.xsd';
       
       l_xml_schema VARCHAR2(32767);
       
       E_XSD_ALREADY_REGISTERED EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_ALREADY_REGISTERED, -31085);
    BEGIN
       l_xml_schema :=
          '<xs:schema'||CHR(10)||
          'xmlns:xs="http://www.w3.org/2001/XMLSchema"'||CHR(10)||
          'xmlns:xdb="http://xmlns.oracle.com/xdb"'||CHR(10)||
          'version="1.0"'||CHR(10)||
          'xdb:storeVarrayAsTable = "true">'||CHR(10)||
          ' <xs:element name="TransactionBatch" type="TransactionBatchType" xdb:defaultTable="XSD_TEST_BATCH_BINXML1"/>'||CHR(10)||
          ' <xs:complexType name="TransactionBatchType">'||CHR(10)||
          '  <xs:sequence>'||CHR(10)||
          '   <xs:element name="Transaction" type="TransactionType" minOccurs="1" maxOccurs="unbounded" xdb:defaultTable="XSD_TEST_TRANSACTION_BINXML1"/>'||CHR(10)||
          '  </xs:sequence>'||CHR(10)||
          ' </xs:complexType>'||CHR(10)||
          ' <xs:complexType name="TransactionType">'||CHR(10)||
          '  <xs:sequence>'||CHR(10)||
          '   <xs:element name="Portal" type="PortalType" minOccurs="1" maxOccurs="1" />'||CHR(10)||
          '   <xs:element name="CustomerId" type="CustomerIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="TransactionQuantity" type="TransactionQuantityType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="AppTransactionId" type="AppTransactionIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="TransactionDetails" type="TransactionDetailType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="Username" type="UsernameType" minOccurs="1" maxOccurs="1" />'||CHR(10)||
          '  </xs:sequence>'||CHR(10)||
          ' </xs:complexType>'||CHR(10)||
          ' <xs:simpleType name="PortalType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="30"/>'||CHR(10)||
          '   <xs:enumeration value="TEST1"/>'||CHR(10)||
          '   <xs:enumeration value="TEST2"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="CustomerIdType">'||CHR(10)||
          '  <xs:restriction base="xs:string"/>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="TransactionQuantityType">'||CHR(10)||
          '  <xs:restriction base="xs:integer">'||CHR(10)||
          '   <xs:minExclusive value="0"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="AppTransactionIdType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="20"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="TransactionDetailType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="UsernameType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="30"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          '</xs:schema>';
       
       DBMS_XMLSCHEMA.REGISTERSCHEMA(
          schemaurl       => l_xsd_url_con,
          schemadoc       => l_xml_schema,
          local           => TRUE,                             -- XSD must only be visible to the Owner DB Schema in which this script is run.
          genTypes        => FALSE,                            -- Don't want to generate object types, as we're using Binary XML.
          force           => FALSE,                            -- Raise all errors on creation
          owner           => USER,                             -- XML Schema will belong to the currently executing user.
          options         => DBMS_XMLSCHEMA.REGISTER_BINARYXML -- We wish to register the XSD as Binary XML.
       );
       
    EXCEPTION
       WHEN E_XSD_ALREADY_REGISTERED
       THEN
          DBMS_OUTPUT.PUT_LINE('XML Schema '||l_xsd_url_con||' is already registered.');
          
    END;
    /
    
    SET FEEDBACK ON
    H3. 2. create a bunch of Table with an XMLTYPE column based on version 1 of my XML schema:
    PROMPT ----------------------;
    PROMPT ONE-OFF DDL STATEMENTS;
    PROMPT ----------------------;
    
    DROP TABLE test_batch;
    DROP SEQUENCE seq_test_batch_id;
    
    CREATE TABLE test_batch
    (
       batch_id        NUMBER(20),
       batch_timestamp TIMESTAMP   DEFAULT SYSTIMESTAMP,
       batch_xml       XMLTYPE,
       CONSTRAINT tbh_batch_id_nn        CHECK(batch_id IS NOT NULL),
       CONSTRAINT tbh_batch_timestamp_nn CHECK(batch_timestamp IS NOT NULL),
       CONSTRAINT tbh_batch_xml_nn       CHECK(batch_xml IS NOT NULL)
    )
    XMLTYPE COLUMN batch_xml STORE AS SECUREFILE BINARY XML
    XMLSCHEMA "http://home/xsd/test_binXML_v1.xsd"
    ELEMENT "TransactionBatch"
    PARTITION BY RANGE(batch_timestamp)
    INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
    (
       PARTITION P_TEST_BATCH_201208 VALUES LESS THAN (TO_DATE('01-SEP-2012', 'DD-MON-YYYY')) TABLESPACE &&TABLSPACE_OF_YOUR_CHOICE
    );
    
    CREATE UNIQUE INDEX idx_tbh_batch_id ON test_batch(batch_id)
    TABLESPACE TXTREME_IDX_XLG;
    
    ALTER TABLE test_batch
       ADD CONSTRAINT tbh_batch_id_pk PRIMARY KEY (batch_id) USING INDEX idx_tbh_batch_id;
    
    CREATE SEQUENCE seq_test_batch_id
    START WITH 1
    INCREMENT BY 1
    MAXVALUE 99999999999999999999
    CYCLE
    NOCACHE
    NOORDER;
    H3. 3. fill this table with the test data.
    PROMPT --------------------------;
    PROMPT CREATING INITIAL TEST DATA;
    PROMPT --------------------------;
    
    TRUNCATE TABLE TEST_BATCH;
    
    SET TIMING ON
    DECLARE
       l_batch_count_con CONSTANT NUMBER(4) := 200;
       
       l_transaction_count   PLS_INTEGER;
       l_total_transactions  PLS_INTEGER DEFAULT 0;
       l_transaction_xmlclob CLOB;
       l_transaction_xmldoc  XMLTYPE;
    BEGIN
       FOR idx IN 1..l_batch_count_con
       LOOP
          l_transaction_count := TRUNC(DBMS_RANDOM.VALUE(1,100));
          
          -- Initialise XML CLOB String. 
          l_transaction_xmlclob := '<?xml version="1.0"?>'||CHR(10)||'<TransactionBatch>';
          
          -- Insert the contents of the XML CLOB String.
          FOR idx IN 1 .. l_transaction_count
          LOOP
             l_transaction_xmlclob := l_transaction_xmlclob||CHR(10)||
                                      '  <Transaction>'||CHR(10)||
                                      '    <Portal>TEST1</Portal>'||CHR(10)||
                                      '    <CustomerId>1234567891</CustomerId>'||CHR(10)||
                                      '    <TransactionQuantity>4</TransactionQuantity>'||CHR(10)||
                                      '    <AppTransactionId>1232K89C</AppTransactionId>'||CHR(10)||
                                      '    <TransactionDetails>This is another long free text field</TransactionDetails>'||
                                      '    <Username>Jimbo2</Username>'||CHR(10)||
                                      '  </Transaction>';
          END LOOP;
          
          --Terminate XML CLOB String.
          l_transaction_xmlclob := l_transaction_xmlclob||CHR(10)||'</TransactionBatch>';
          
          -- Create XMLTYPE XML Document.
          l_transaction_xmldoc := XMLTYPE.createXML(l_transaction_xmlclob);
          
          -- Populate the TEST_BATCH Table.
          INSERT INTO test_batch
            ( batch_id,
              batch_timestamp,
              batch_xml
            )
          VALUES
            ( SEQ_TEST_BATCH_ID.NEXTVAL,
              SYSTIMESTAMP,
              l_transaction_xmldoc
            );
            
          l_total_transactions := l_total_transactions + l_transaction_count;
       END LOOP;
       
       DBMS_OUTPUT.PUT_LINE('Inserted a total of '||l_total_transactions||' transaction XML pieces across '||l_batch_count_con||' Test Batches.');
       COMMIT;
       DBMS_OUTPUT.PUT_LINE('Commit complete.');
    END;
    /
    
    SET TIMING OFF
    H3. 4. save the Version 2 of my XML schema
    PROMPT -----------------------------------------------------------------------------------;
    PROMPT NEW XML SCHEMA REGISTRATION - IDENTICAL TO OLD SCHEMA EXCEPT FOR NEW <Test> ELEMENT;
    PROMPT -----------------------------------------------------------------------------------;
    
    SET FEEDBACK OFF
    
    DECLARE
       l_xsd_url_con CONSTANT VARCHAR2(60) := 'http://home/xsd/test_binXML_v2.xsd';
       
       l_xml_schema VARCHAR2(32767);
       
       E_XSD_ALREADY_REGISTERED EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_ALREADY_REGISTERED, -31085);
    BEGIN
       l_xml_schema :=
          '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" version="1.0" xdb:storeVarrayAsTable="true">'||CHR(10)||
          '<xs:element name="TransactionBatch" type="TransactionBatchType" xdb:defaultTable="XSD_TEST_BATCH_BINXML2"/>'||CHR(10)||
          '<xs:complexType name="TransactionBatchType">'||CHR(10)||
          ' <xs:sequence>'||CHR(10)||
          '  <xs:element name="Transaction" type="TransactionType" minOccurs="1" maxOccurs="unbounded" xdb:defaultTable="XSD_TEST_TRANSACTION_BINXML2"/>'||CHR(10)||
          ' </xs:sequence>'||CHR(10)||
          '</xs:complexType>'||CHR(10)||
          '<xs:complexType name="TransactionType">'||CHR(10)||
          ' <xs:sequence>'||CHR(10)||
          '  <xs:element name="Portal" type="PortalType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="CustomerId" type="CustomerIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="TransactionQuantity" type="TransactionQuantityType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="AppTransactionId" type="AppTransactionIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="TransactionDetails" type="TransactionDetailType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="Username" type="UsernameType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="Test" type="TestType" minOccurs="0" maxOccurs="1"/>'||CHR(10)||
          ' </xs:sequence>'||CHR(10)||
          '</xs:complexType>'||CHR(10)||
          '<xs:simpleType name="PortalType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          '  <xs:enumeration value="TEST1"/>'||CHR(10)||
          '  <xs:enumeration value="TEST2"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="CustomerIdType">'||CHR(10)||
          ' <xs:restriction base="xs:string"/>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TransactionQuantityType">'||CHR(10)||
          ' <xs:restriction base="xs:integer">'||CHR(10)||
          '  <xs:minExclusive value="0"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="AppTransactionIdType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="20"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TransactionDetailType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="UsernameType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TestType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '</xs:schema>';
       
       DBMS_XMLSCHEMA.REGISTERSCHEMA(
          schemaurl       => l_xsd_url_con,
          schemadoc       => l_xml_schema,
          local           => TRUE,                             -- XSD must only be visible to the Owner DB Schema in which this script is run.
          genTypes        => FALSE,                            -- Don't want to generate object types, as we're using Binary XML.
          force           => FALSE,                            -- Raise all errors on creation
          owner           => USER,                             -- XML Schema will belong to the currently executing user.
          options         => DBMS_XMLSCHEMA.REGISTER_BINARYXML -- We wish to register the XSD as Binary XML.
       );
       
    EXCEPTION
       WHEN E_XSD_ALREADY_REGISTERED
       THEN
          DBMS_OUTPUT.PUT_LINE('XML Schema '||l_xsd_url_con||' is already registered.');
          
    END;
    /
    
    SET FEEDBACK ON
    H3. 5 test to insert a new XML document in line with the second XML schema. This test fails as expected.
    PROMPT ---------------------------------------------------------------;
    PROMPT ATTEMPT TO INSERT V2 XSD-COMPLIANT XMLDOC INTO TEST_BATCH TABLE;
    PROMPT ---------------------------------------------------------------;
    
    DECLARE
       l_transaction_xmldoc XMLTYPE;
       
       E_XSD_VALIDATION_FAILURE EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_VALIDATION_FAILURE, -31061);
    BEGIN
       l_transaction_xmldoc := XMLTYPE.createXML(
                                  '<?xml version="1.0" encoding="UTF-8"?>'||CHR(10)||
                                  '<TransactionBatch>'||CHR(10)||
                                  '  <Transaction>'||CHR(10)||
                                  '    <Portal>CARMAN</Portal>'||CHR(10)||
                                  '    <CustomerId>1234567891</CustomerId>'||CHR(10)||
                                  '    <TransactionQuantity>4</TransactionQuantity>'||CHR(10)||
                                  '    <AppTransactionId>1232K89C</AppTransactionId>'||CHR(10)||
                                  '    <TransactionDetails>This is a long free text field</TransactionDetails>'||CHR(10)||
                                  '    <Username>Jimbo2</Username>'||CHR(10)||
                                  '    <Test>This is an In-Place Schema Evolution Test</Test>'||CHR(10)||
                                  '  </Transaction>'||CHR(10)||
                                  '</TransactionBatch>'
                               );
       
       -- Attempt to populate the SUBMISSION_BATCH Table.
       INSERT INTO submission_batch
         ( batch_id,
           batch_timestamp,
           batch_xml
         )
       VALUES
         ( SEQ_SUB_BATCH_ID.NEXTVAL,
           SYSTIMESTAMP,
           l_transaction_xmldoc
         );
       
       DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT||' row inserted.');
       COMMIT;
       DBMS_OUTPUT.PUT_LINE('Commit complete.');
    
    EXCEPTION
       WHEN E_XSD_VALIDATION_FAILURE
       THEN
          DBMS_OUTPUT.PUT_LINE('Insert failed as expected.'||CHR(10));
          DBMS_OUTPUT.PUT_LINE(SQLERRM);
    END;
    /
    H3. 6. try Inplace development of Version 1 of the XML schema in Version 2.
    PROMPT --------------------------------------------------------------------------------------;
    PROMPT PERFORM IN-PLACE EVOLUTION AND DE-REGISTER/PURGE OLD SCHEMA IF EVOLUTION IS SUCCESSFUL;
    PROMPT --------------------------------------------------------------------------------------;
    
    SET TIMING ON
    
    DECLARE
       l_current_schema   XMLTYPE;
       l_new_schema       XMLTYPE;
       l_xsd_differences  XMLTYPE;
       
       l_resource         BOOLEAN;
    BEGIN
       SELECT schema
         INTO l_current_schema
         FROM user_xml_schemas
        WHERE schema_url = 'http://home/xsd/test_binXML_v1.xsd';
       
       SELECT schema
         INTO l_new_schema
         FROM user_xml_schemas
        WHERE schema_url = 'http://home/xsd/test_binXML_v2.xsd';
       
       SELECT XMLDIFF(l_current_schema, l_new_schema)
         INTO l_xsd_differences
         FROM dual;
       
       DBMS_OUTPUT.PUT_LINE('Successfully extrapolated XDIFF XML Document.');
       
       DBMS_XMLSCHEMA.inPlaceEvolve( 'http://home/xsd/test_binXML_v1.xsd',
                                     l_xsd_differences,
                                     DBMS_XMLSCHEMA.INPLACE_TRACE
                                   );
       
       DBMS_OUTPUT.PUT_LINE('Successfully evolved original XML Schema.');
       
    EXCEPTION
       WHEN OTHERS
       THEN
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE('Error issued during InPlace XML Schema Evolution:');
          DBMS_OUTPUT.PUT_LINE(SQLERRM);
    END;
    /
    H3. The scripts above provide the following Test output:
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
    Connected as TEST_DB_SCHEMA@dbs02local
     
    SQL> 
    -------------------------------
    INITIAL XML SCHEMA REGISTRATION
    -------------------------------
     
    XML Schema http://home/xsd/test_binXML_v1.xsd is already registered.
     
    Executed in 0 seconds
    
    ----------------------
    ONE-OFF DDL STATEMENTS
    ----------------------
      
    Table created
     
    Executed in 0.016 seconds
     
    Index created
     
    Executed in 0.016 seconds
     
    Table altered
     
    Executed in 0 seconds
     
    Sequence created
     
    Executed in 0 seconds
    
    --------------------------
    CREATING INITIAL TEST DATA
    --------------------------
     
    Table truncated
     
    Executed in 0.032 seconds
    
    Inserted a total of 10259 transaction XML pieces across 200 Test Batches.
    Commit complete.
     
    PL/SQL procedure successfully completed
     
    Executed in 8.487 seconds
    
    -----------------------------------------------------------------------------------
    NEW XML SCHEMA REGISTRATION - IDENTICAL TO OLD SCHEMA EXCEPT FOR NEW <Test> ELEMENT
    -----------------------------------------------------------------------------------
     
    XML Schema http://home/xsd/test_binXML_v2.xsd is already registered.
    
    ---------------------------------------------------------------
    ATTEMPT TO INSERT V2 XSD-COMPLIANT XMLDOC INTO TEST_BATCH TABLE
    ---------------------------------------------------------------
     
    Insert failed as expected.
    
    ORA-31061: XDB error: XML event error
    ORA-19202: Error occurred in XML processing
    LSX-00213: only 0 occurrences of particle "Transaction", minimum is 1
     
    PL/SQL procedure successfully completed
     
    --------------------------------------------------------------------------------------
    PERFORM IN-PLACE EVOLUTION AND DE-REGISTER/PURGE OLD SCHEMA IF EVOLUTION IS SUCCESSFUL
    --------------------------------------------------------------------------------------
     
    Successfully extrapolated XDIFF XML Document.
    Error issued during InPlace XML Schema Evolution:
    ORA-31166: internal error code to handle ignorable attributes
     
    PL/SQL procedure successfully completed
     
    Executed in 0.046 seconds
    SQL> 
    NOTE: When I ran the above tests, I had already created the test of XML schemas. That's why the output messages, say...

    H4. Now, as it is the first time I've ever tried evolution of XML schema in Oracle XMLDB, is there someone who could potentially open the door please, re. solve the < font color = "red" >ORA-31166< / police > error?

    Hello

    First of all, thank you for your efforts on the provision of a decent test case.

    However, there are a few inconsistencies:

    -Step 5 attempts to insert into SUBMISSION_BATCH, but the table created above is TEST_BATCH
    -Same for the sequence name

    Now back to the real question...

    I think the problem comes because you run XMLDiff against two versions saved of your drawings.
    When Oracle stores a schema, it adds a large number of attributes for internal use (you can see them by querying USER_XML_SCHEMAS. DIAGRAM) but we as end users don't have to worry about them.
    However, by building the Xdiff document based on these two 'internal' versions, we explicitly say Oracle whose internal attributes must be changed during the evolution of the scheme, leading to potential conflicts.

    A few other comments:
    -Given that you're using the binary XML schema, you must also set "genTables-online false" and more "genTypes-online false."
    -Also delete all annotations from xdb:defaultTable and xdb:storeVarrayAsTable on the diagrams, they are of no use in this situation.
    -Do not save the schema of the v2, it is not necessary. Just use a transient instance when calling XMLDiff

    So, to summarize:

    -XMLDiff run against both original patterns (do not save a new in any case, the process of evolution will take care of replacing the old).
    -of course, don't forget to change the INPLACE_TRACE to INPLACE_EVOLVE when ready :)

    Hope that helps.

    Published by: odie_63 on August 23, 2012 16:31 - fixed some typos

  • XMLPARSER.parseClob (v_parser, w2_data_clob); Returns the ORA-20100: error

    I have a script that calls an output file and reads in a clob. This part seems to work very well. I then try to make a XMLPARSER.parseClob (v_parser, w2_data_clob), but I get the following error:
    ORA-20100: an error occurred during parsing: expected 'Expressions of folklore '.

    I enclose file script and output data. Any help is greatly appreciated:

    SET SERVEROUTPUT SIZE 100000;
    SET LINESIZE 1000;
    TOGETHER TO DEFINE

    DECLARE
    file_handle utl_file. TYPE_DE_FICHIER;
    EOF Boolean: = FALSE;
    retrieved_buffer VARCHAR2 (2000);
    nom_repertoire VARCHAR2 (240): = cfa_lookup.meaning ('APP_BASEPATH', 'APPLCSF'). "/ out";
    file_name VARCHAR2 (40): = "o36841443.xml";
    CLOB w2_data_clob;
    CLOB w2_data_clob_out;
    v_loop_counter INTEGER: = 0;
    v_parser xmlparser.parser;
    v_document xmldom. DOMDocument;
    V_LENGTH INTEGER: = 0;
    v_clob_length INTEGER: = 0;
    v_nodelist xmldom. DOMNodeList;
    v_node xmldom. DOMNode;
    v_new_node xmldom. DOMNode;
    v_parent_node xmldom. DOMNode;
    v_record_node XMLDOM. DOMNode;
    Avalue xmldom. DOMNode;
    v_new_element xmldom. DOMElement.
    v_new_element_node xmldom. DOMNode;
    v_new_text xmldom. DOMText;
    v_new_text_node xmldom. DOMNode;
    v_employee_id INTEGER.
    v_employer_name hr_organization_units.name%TYPE;
    v_address_line_1 hr_locations.address_line_1%TYPE;
    v_address_line_2 hr_locations.address_line_2%TYPE;
    v_address_line_3 hr_locations.address_line_3%TYPE;
    v_town_or_city hr_locations.town_or_city%TYPE;
    v_region_2 hr_locations.region_2%TYPE;
    v_postal_code hr_locations.postal_code%TYPE;
    v_status INTEGER;
    v_bytes_remaining INTEGER.
    v_current_offset INTEGER.
    v_next_lf_offset INTEGER.
    v_X_offset INTEGER DEFAULT 1;
    v_bytes_to_read INTEGER.
    v_end_of_clob BOOLEAN;
    v_line_number INTEGER.
    v_line VARCHAR2 (2000);
    v_bytes_remaining_g_emp INTEGER.
    v_current_offset_g_emp INTEGER.
    v_next_offset_g_emp INTEGER.
    v_bytes_to_read_g_emp INTEGER.
    v_end_of_g_emp BOOLEAN;
    v_amount DEFAULT NUMBER 32000.
    x VARCHAR2 (32760);
    v_lf INTEGER.
    e_line_too_long EXCEPTION;


    BEGIN

    DBMS_OUTPUT. Put_line ('Begin process");
    file_handle: = utl_file.fopen (nom_repertoire, filename, "r");

    IF utl_file.is_open (file_handle) THEN
    DBMS_OUTPUT. Put_line ("file is open');
    END IF;

    BEGIN

    -Xml copy w2 to CLOB data file
    DBMS_LOB.CREATETEMPORARY (w2_data_clob, true, DBMS_LOB.session);
    DBMS_LOB. OPEN (w2_data_clob, DBMS_LOB. LOB_READWRITE);
    v_clob_length: = DBMS_LOB. GETLENGTH (w2_data_clob);

    BEGIN
    LOOP
    UTL_FILE.get_line (file_handle, retrieved_buffer);

    IF NVL (lENGTH (retrieved_buffer),-1) <>- 1 THEN
    v_loop_counter: = v_loop_counter + 1;

    -retrieved_buffer: = retrieved_buffer | Chr (10);
    Dbms_output.put_line(v_loop_counter||) e '|| NVL (length (RTrim (retrieved_buffer)),-1). » ' || ASCII (substr (RTrim (retrieved_buffer),-1, 1)) | » '|| RTrim (retrieved_buffer));
    DBMS_LOB. WRITEAPPEND (w2_data_clob, LENGTH (RTRIM (retrieved_buffer)), RTRIM (retrieved_buffer));

    ON THE OTHER
    Dbms_output.put_line ('retrieved_buffer IS NULL "");
    -DBMS_LOB. WRITEAPPEND (w2_data_clob, LENGTH (1), ASCII (CHR (13)));
    END if;

    END LOOP;

    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT. Put_line (' last line read: ' | retrieved_buffer);
    DBMS_OUTPUT. Put_line (' no additional data in a loop: ' |) SQLERRM);
    -DBMS_LOB. WRITEAPPEN (w2_data_clob, 1, CHR (10));
    -DBMS_OUTPUT.put_line (chr (13));
    DBMS_LOB. Close (w2_data_clob);
    WHILE OTHERS THEN
    NULL;
    DBMS_OUTPUT. Put_line (' ERROR in the loop: ' |) SQLERRM);
    END;


    v_clob_length: = DBMS_LOB. GETLENGTH (w2_data_clob);
    DBMS_OUTPUT. Put_line ('v_clob_length: ' | v_clob_length);
    UTL_FILE. FCLOSE (file_handle);


    EXCEPTION
    WHILE OTHERS THEN
    DBMS_OUTPUT. PUT_LINE ('ERROR... » || SQLERRM);

    END;

    DBMS_OUTPUT. Put_line (' last line read: ' | retrieved_buffer);
    DBMS_OUTPUT. Put_line (' number of rows written to the CLOB type: ' | v_loop_counter);

    v_parser: = XMLPARSER.newParser;

    XMLPARSER.setValidationMode (v_parser, FALSE);
    DBMS_OUTPUT. PUT_LINE ('10');
    XMLPARSER.parseClob (v_parser, w2_data_clob);
    DBMS_OUTPUT. PUT_LINE ('20');

    v_document: = XMLPARSER.getDocument (v_parser);
    DBMS_OUTPUT. PUT_LINE ("30");

    UTL_FILE.fclose (file_handle);
    DBMS_OUTPUT. Put_line ("process");

    EXCEPTION
    WHEN UTL_FILE. INVALID_PATH
    THEN DBMS_OUTPUT. Put_line ('invalid_path');
    WHEN UTL_FILE. INVALID_MODE
    THEN DBMS_OUTPUT. Put_line ('invalid_mode');
    WHEN UTL_FILE. INVALID_FILEHANDLE
    THEN DBMS_OUTPUT. Put_line ('invalid_filehandle');
    WHEN UTL_FILE. INVALID_OPERATION
    THEN DBMS_OUTPUT. Put_line ('invalid_operation');
    WHEN UTL_FILE. READ_ERROR
    THEN DBMS_OUTPUT. Put_line ('read_error');
    WHEN UTL_FILE. WRITE_ERROR
    THEN DBMS_OUTPUT. Put_line ('write_error");
    WHEN UTL_FILE. INTERNAL_ERROR
    THEN DBMS_OUTPUT. Put_line ("internal_error");
    WHILE OTHERS
    THEN dbms_output.put_line (SQLERRM);

    END;

    < Version_Number > Version 1.1
    < / Version_Number >
    < xapi:requestset xmlns:xapi = "http://xmlns.oracle.com/oxp/xapi" >
    < xapi:request >
    < xapi:delivery >
    "< xapi:filesystem output="/u100/applcsf/dcfap/log/o0285647.tmp "/ >
    < / xapi:delivery >
    < xapi:document - output type = "pdf" >
    < xapi:template type = 'pdf' location = "${templateName1}" >
    < xapi: data >
    < w2 >
    < control_number > 993536284 < / control_number >
    < federal_ein > 54-1234567 < / federal_ein >
    Charles D Fug < employer_name > < / employer_name >
    < employer_address > chicken house/Rutherford Crossing AUS
    176 Monket St
    Winchester VA 22603 < / employer_address >
    < ssn > 213 - 99 - 9999 < / ssn >
    < emp_name > Darnell < / emp_name >
    < name > Simpson < / last_name >
    < emp_suffix > < / emp_suffix >
    < employee_address > 3981 Water Lane
    Winchester VA 22602 < / employee_address >
    < wages_tips_compensation > 14299.41 < / wages_tips_compensation >
    < fit_withheld > 464.93 < / fit_withheld >
    < ss_wages > 14949.41 < / ss_wages >
    < ss_withheld > 926.87 < / ss_withheld >
    < med_wages > 14949.41 < / med_wages >
    < med_withheld > 216.75 < / med_withheld >
    < ss_tips > < / ss_tips >
    < allocated_tips > < / allocated_tips >
    < eic_payment > < / eic_payment >
    < dependent_care > < / dependent_care >
    < non_qual_plan > < / non_qual_plan >
    < stat_employee > N < / stat_employee >
    < retirement_plan > Y < / retirement_plan >
    < sick_pay > N < / sick_pay >
    < box14_codea > < / box14_codea >
    < box14_meaninga > < / box14_meaninga >
    < box14_codeb > < / box14_codeb >
    < box14_meaningb > < / box14_meaningb >
    < box14_codec > < / box14_codec >
    < box14_meaningc > < / box14_meaningc >
    D < box12_codea > < / box12_codea >
    < box12_meaninga > 650 < / box12_meaninga >
    < box12_codeb > < / box12_codeb >
    < box12_meaningb > < / box12_meaningb >
    < box12_codec > < / box12_codec >
    < box12_meaningc > < / box12_meaningc >
    < box12_coded > < / box12_coded >
    < box12_meaningd > < / box12_meaningd >
    < state1_code > IS < / state1_code >
    < state1_ein > 30 - 541252257F - 001 < / state1_ein >
    < state1_wages > 14299.41 < / state1_wages >
    < state1_tax > 388.49 < / state1_tax >
    < local1_wages > < / local1_wages >
    < local1_tax > < / local1_tax >
    < locality1 > < / locality1 >
    < state2_code > < / state2_code >
    < state2_ein > < / state2_ein >
    < state2_wages > < / state2_wages >
    < state2_tax > < / state2_tax >
    < local2_wages > < / local2_wages >
    < local2_tax > < / local2_tax >
    < locality2 > < / locality2 >
    < year > 2008 < / year >
    < modified > < / modified >
    < amended_date > < / amended_date >
    < print_instruction > N < / print_instruction >
    < / w2 >
    < / xapi: data >
    < / xapi:template >
    < xapi:template type = 'pdf' location = "${templateName2}" >
    < xapi: data / >
    < / xapi:template >
    < / xapi:document >
    < / xapi:request >
    < / xapi:requestset >

    that error occurs generally when the parser attempts to read an incomplete XML file IE start tag does not match the final tag.
    I see you will have an invalid XML, it's that your CLOB? If so, this would have caused the parser for error

    Concerning

    Tim

  • Regexp_replace replaces no more

    Hi all

    I recently had to downgrade my version of 10.2.0.3 on 10.2.0.1 database (see below for more details).
    Since this change, a call to regexp_replace no longer works.

    Here is a code example:
    DECLARE
    CTX dbms_xmlgen.ctxHandle;
    XML CLOB.
    Req varchar2 (4000);
    BEGIN
    Req: = 'SELECT table_name FROM user_tables;
    CTX: = dbms_xmlgen. NewContext (req);
    dbms_xmlgen.setnullhandling (ctx, dbms_xmlgen. EMPTY_TAG);
    XML: = dbms_xmlgen.getxml (ctx);
    IF dbms_xmlgen. GETNUMROWSPROCESSED (ctx) = 0 THEN
    XML: = ' <? XML version = "1.0" encoding = "ISO-8859-1? > ';
    XML: xml = | ' < ROWSET / > ';
    ON THE OTHER
    XML: = regexp_replace (xml, ' ^ < \?xml(.+?)------? > ',' <? xml\1 encoding = 'ISO-8859-1'? > ')--call this work does'nt
    END IF;
    dbms_xmlgen.closeContext (ctx);
    dbms_output.put_line ('* AFTER *' | xml);
    dbms_xmlgen.closeContext (ctx);
    END;
    /
    The output xml is empty ('* AFTER *' | xml) while it was not in the latest version.
    I find no relationship between regexp_replace and Oracle 10.2.0.3.

    TIA
    Stephan

    ------------------------------------------------------------------------------------
    LATEST version
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL version 10.2.0.3.0 - Production
    "CORE 10.2.0.3.0 Production."
    AMT for Linux: release 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    NEW version
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    "CORE 10.2.0.1.0 Production."
    AMT for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production

    Steff972_the_one wrote:
    Strange, isn't it?

    Yes. It seems as if regexp_replace isn't able to properly manage the CLOB in your version.

    the successful role.
    anonymous block filled
    * between *.


    N43005


    N43010


    N43011


    N
    * AFTER *.

    Nothing after "* AFTER."

    I still don't understand why you got no result at all, but perhaps the regexp_replace as l ' somehow the clob Locator.

    Here is a list of alternatives to try instead of regexp_replace. You will lose some flexibility, we need to decide for yourself if they are substitutes.

    (1) replace normal

    xml := replace(xml, '', '')
    

    (2) use XMLROOT as shown in one of the previous posts. This could ruin the "prettyprinting' of the clob. But there are functions to deal with that, if it is a problem.

    (3) add the encoding later. It all depends on what you want to do with the clob. If you write it to a file, then you can probably do this stage

    (4) delete the first line of the Clob object and add another line instead (bad idea I think. This will make things just slow and fragile.

    v_line1 := ...
    v_tempxml := ...
    xml := v_line1 || v_tempxml;
    

    (4) upgrade to oracle 10.2.0.4

    Published by: W. Sven September 30, 2009 10:12

  • Update an attribute XML in a CLOB to a table column

    Hello world

    I have a CLOB column in my table that carries a date XML. In which I need to update the attributes of the child when they repeat with the same parents several times in the data.

    For example:

    Say my XML data as follows.

    <? XML version = "1.0"? >

    " < sample xmlns =" https://www.ABC.com "> "

    < a > < b > detail first line < /b >

    second line of detail/< c >/< c >

    < /a >

    < d > < c > Paris/< c > < / d >

    < d > < c > France/< c > < / d >

    Japan < d > < c >/< c > < / d >

    < /sample >


    I want to update as

    <? XML version = "1.0"? >

    < sample xmlns = " https://www.ABC.com "> "

    < a > < b > detail first line < /b >

    second line of detail/< c >/< c >

    < /a >

    < d > < c1 > Paris < / c1 > < / d >

    < d > < c2 > France < / c2 > < / d >

    Japan < d > < c3 > < / c3 > < / d >

    < /sample >


    I have tried to identify the repetition of my parent attribute using the sub query and I tried updating their attribute by extracting the XML data for each attribute parent in a loop. But it does not work


    Select xml_load where xml_name = "sample1"; regexp_count (xml_val,' <d> ') -Giving more than 10K as County


    Identified the attributes of the parent for help,

    Select

    Count (1)

    of xml_load x

    where existsNode (extract (xmltype (xml_val),'/ * [local - name () = "sample"]'),)

    (' / d ') = 1 - he never returned me 1. I couldn't understand why as there is an attribute called < d >.

    Please provide your help in achieving my requirement. Any help would be greatly appreciated.

    I guess you want to insert an attribute in the existing xml document. So my suggestion is, instead of UPDATEXML you can just use INSERTCHILDXML. The following code works correctly. Hope this will be the final XML format

    -Code

    DECLARE

    l_col1 XMLTYPE.

    Nt_xml TYPE TABLE IS NUMBER;

    l_ntxml nt_xml: = nt_xml();

    BEGIN

    XMLTYPE (xt.xml_val) SELECT col1 INTO l_col1

    OF xml_test xt

    WHERE xt.xml_name = 'file sample.xml ";

    SOME pos

    LOOSE COLLECTION l_ntxml

    OF xml_test xt.

    XMLTABLE (xmlnamespaces (DEFAULT "http://www.abc.com'),

    "/ Report/identifier/area/CodeCategory.

    PASSAGE xmltype (xt.xml_val)

    COLUMNS pos for ORDINALITE

    )

    WHERE xt.xml_name = 'file sample.xml ";

    BECAUSE me IN 1.l_ntxml. COUNTY

    LOOP

    SELECT INSERTCHILDXML (l_col1,'/ report/identifier/area/CodeCategory ['| l_ntxml (i) |'] /Code','@id',l_ntxml (i) ','xmlns = "http://www.abc.com" ' ")

    IN l_col1

    DOUBLE;

    END LOOP;

    -DBMS_OUTPUT. Put_line (l_col1. GetClobVal());

    UPDATE xml_test SET xml_val is l_col1. GetClobVal() WHERE xml_name = "sample.xml";

    COMMIT;

    END;

    -After insertion

    http://www.ABC.com">

    CC5

    I48c2

    5

    65445

    5

    2c653

    5

    4c28

    5A

    55635

    5

    I5cc

    5

    65645

    5

    4555

    2

    I483

    5

    e558

    5

    I482

    5

    5563c

    5

    76526

    5

    64885

    2

    76524

    5

    e55c

    5

    e556c

    5

    C5cc52

    5

    45c7c

    2

    45c75

    2

    2c64c

    2

    77585

    5

    65455

    5

    e5565

    5

    2c644

    2

    667c2

    5

    2c643

    5

    7655c

    5

    O8c

    5

    V3cc5

    2

    V3ccc

    3

    73c27

    5

    3c4cc

    5

    24c7c

    5

    V275

    5

    V27c

    5

    e25

    5

    e5cc

    5

    76556

    5

    64825

    2

    2c57c

    5

    252c5

    5

    75cc

    5

    V5867

    2

    4c32c

    5

    25c8c

    5

    C5c555

    5

    V245

    5

    V242

    3

    2c75

    5

    65665

    5

    J452c

    5

    765c3

    5

    252cc

    5

    34545

    5

    555

    5

    4c4c

    5

    64855

    5

    I27c

    5

    F84c

    5

    27735

    5

    25cc3

    2

    27cc

    2

    556c

    5

    I5c32

    5

    3c4c5

    5

    25ccc

    54

    585

    5

    25cc2

    5

    25cc5

    5

    648c5

    2

    64425

    5

    3c4cc

    5

    O42c2

    5

    65c65

    5

    77c3

    5

    77c7

    5

    Pc735

    5

    27c4

    5

    c38c

    5

    J45cc8

    5

    2c68c

    5

    cc5c5

    5

    343c

    5

    2c68c

    2

    4c3c5

    5

    57c3

    5

    4c3c2

    2

    e37c

    5

    Mc57c

    5

    4c3cc

    8

    57cc

    5

    42735

    4

    42732

    2

    345c5

    5

    O6c85Xc

    5

    4283c

    5

    2c8c

    5

    25c6c

    3

    ec42

    5

    25c62

    5

    25c63

    5

    4568

    5

    345cc

    5

    2c632

    4

    65425

    3

    2c63c

    2

    5745

    5

    2c635

    5

    F3553

    5

    754c

    4

    45c85

    5

    78c3c

    3

    5748

    5

    73cc7

    5

    76c

    5

    66455

    5

    657c5

    5

    66cc5

    5

    V42c

    2

    V425

    5

    7767

    5

    66624

    5

    42822

    5

    57c8

    5

    Mc54c

    5

    2c634

    5

    e7c4

    5

    J845c

    5

    2c62c

    5

    45cc5

    2

    2c622

    5

    64765

    5

    e554c

    5

    3572

    3

    e3c2

    5

    5c6c

    5

    73c5c

    5

    7467

    5

    V426

    5

    65c

    3

    7463

    5

    F35c

    5

    64664

    5

    7464

    5

    73c57

    5

    c383

    5

    4c5c

    5

    66652

    5

    F5525

    5

    F552c

    5

    25c4c

    5

    2c626

    5

    428c

    2

    65225

    5

Maybe you are looking for