Child node insert performance

(Oracle Database 11g 11.1.0.6.0)
I just ran a test to continually insert child XML nodes into an XML table and found performance slow. As the documentation states, the reason appears to be because the entire XML is being read into memory each time as a DOM before the insert.
My question is whether there is a higher performing means of performing child node inserts?
The test is as follows:
i)     Create a non-schema based XML type table:
                    CREATE TABLE myTable1 (
                         id NUMBER,
                         XML_COLUMN XMLType
                    XMLTYPE COLUMN xml_document store as binary xml
ii)     The table is initialized with one row of data:
     0, XMLTYPE('<trace-envelope>
               <metadata>
                    <pid>12345</pid>
                    <date>2008-05-30</date>
               </metadata>
          </trace-envelope>')
iii)     Insert/append successive XML data using the following statement:
     UPDATE MyTable1 SET XML_COLUMN = APPENDCHILDXML(XML_COLUMN," +
          "'trace-envelope', XMLType('" + traceData + "'))";
     where 'traceData' is some new XML data for insertion. The view on the row then becomes (for example):
     0, XMLTYPE('<trace-envelope>
               <metadata>
                    <pid>12345</pid>
                    <date>2008-05-30</date>
               </metadata>
               <EP>
                    <priceDate>
                         2008-05-30
                    </priceDate>
               </EP>
          </trace-envelope>')
iv)     Continue appending successive child nodes.

The only thing I currently can think of is maybe a negative impact of updating / re-balancing the index tree during appending in the XMLType OR structure.
SQL> select * from user_segments where segment_type like '%INDEX%'
  2  order by segment_type
  3  /
SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SU TABLESPACE_NAME                    BYTES    BLOCKS   EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS  MAX_SIZE RETENTI MINRETENTION PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_
SYS_C004114                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004115                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004116                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004117                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004118                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004120                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004119                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00005$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00011$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00016$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00025$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060324C00003$$                                      LOBINDEX           ASSM       USERS                             131072        16         2          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060305C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060328C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
15 rows selected.
SQL> select * from user_segments
  2  /
SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SU TABLESPACE_NAME                    BYTES    BLOCKS   EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS  MAX_SIZE RETENTI MINRETENTION PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_
ACTION_TABLE                                                  NESTED TABLE       ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060305C00004$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060305C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004114                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
LINEITEM_TABLE                                                NESTED TABLE       ASSM       USERS                             131072        16         2          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004115                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_OR                                              TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00004$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00005$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00005$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00011$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00011$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00016$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00016$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00025$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00025$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004116                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004117                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004118                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_CLOB                                            TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060324C00003$$                                     LOBSEGMENT         ASSM       USERS                           14680064      1792        29          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060324C00003$$                                      LOBINDEX           ASSM       USERS                             131072        16         2          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004119                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_CSX                                             TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060328C00003$$                                     LOBSEGMENT         SECUREFILE USERS                             327680        40         4         106496                       1   2.147E+09 2.147E+09 DEFAULT            0                                        DEFAULT
SYS_IL0000060328C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004120                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
28 rows selected.
SQL> select dbms_lob.getlength(t.xmldata)
  2         as "XMLDocSize"
  3  from   PURCHASEORDER_CLOB t;
XMLDocSize
     73114
1 row selected.
SQL>
SQL> select dbms_lob.getlength(t.object_value.getclobval())
  2         as "XMLDocSize"
  3  from   PURCHASEORDER_CSX t;
XMLDocSize
     68682
1 row selected.
SQL>
SQL> select dbms_lob.getlength(t.object_value.getclobval())
  2         as "XMLDocSize"
  3  from   PURCHASEORDER_OR t;
XMLDocSize
     85342
1 row selected.
SQL>
SQL> truncate table PURCHASEORDER_CLOB;
Table truncated.
SQL> truncate table PURCHASEORDER_CSX;
Table truncated.
SQL> truncate table PURCHASEORDER_OR;
Table truncated.
SQL> var DOCUMENT VARCHAR2(4000)
SQL> --
SQL> set define off
SQL> --
SQL> begin
  2    :DOCUMENT :=
  3  '<PurchaseOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PurchaseOrder.xsd">
  4     <Reference>AMCEWEN-20030409123336271PDT</Reference>
  5     <Actions>
  6             <Action>
  7                     <User>KPARTNER</User>
  8             </Action>
  9     </Actions>
10     <Reject/>
11     <Requestor>Allan D. McEwen</Requestor>
12     <User>AMCEWEN</User>
13     <CostCenter>S30</CostCenter>
14     <ShippingInstructions>
15             <name>Allan D. McEwen</name>
16             <address>Oracle Plaza
17  Twin Dolphin Drive
18  Redwood Shores
19  CA
20  94065
21  USA</address>
22             <telephone>650 506 7700</telephone>
23     </ShippingInstructions>
24     <SpecialInstructions>Expidite</SpecialInstructions>
25     <LineItems>
26             <LineItem ItemNumber="1">
27                     <Description>Traffic</Description>
28                     <Part Id="696306038924" UnitPrice="39.95" Quantity="2"/>
29             </LineItem>
30             <LineItem ItemNumber="2">
31                     <Description>General Idi Amin Dada</Description>
32                     <Part Id="37429166529" UnitPrice="29.95" Quantity="3"/>
33             </LineItem>
34             <LineItem ItemNumber="3">
35                     <Description>This is Spinal Tap</Description>
36                     <Part Id="715515009126" UnitPrice="39.95" Quantity="3"/>
37             </LineItem>
38             <LineItem ItemNumber="4">
39                     <Description>Great Expectations</Description>
40                     <Part Id="37429128022" UnitPrice="39.95" Quantity="1"/>
41             </LineItem>
42             <LineItem ItemNumber="5">
43                     <Description>The Unbearable Lightness Of Being</Description>
44                     <Part Id="37429140222" UnitPrice="29.95" Quantity="2"/>
45             </LineItem>
46             <LineItem ItemNumber="6">
47                     <Description>Blood of a Poet</Description>
48                     <Part Id="37429147429" UnitPrice="0.0" Quantity="1"/>
49             </LineItem>
50             <LineItem ItemNumber="7">
51                     <Description>Juliet of the Spirits</Description>
52                     <Part Id="37429165829" UnitPrice="29.95" Quantity="4"/>
53             </LineItem>
54             <LineItem ItemNumber="8">
55                     <Description>Insomnia</Description>
56                     <Part Id="37429138229" UnitPrice="29.95" Quantity="4"/>
57             </LineItem>
58             <LineItem ItemNumber="9">
59                     <Description>Picnic at Hanging Rock</Description>
60                     <Part Id="37429126325" UnitPrice="29.95" Quantity="3"/>
61             </LineItem>
62             <LineItem ItemNumber="10">
63                     <Description>W.C. Fields - Six Short Films</Description>
64                     <Part Id="715515010726" UnitPrice="29.95" Quantity="4"/>
65             </LineItem>
66     </LineItems>
67  </PurchaseOrder>';
68  end;
69  /
PL/SQL procedure successfully completed.
SQL>
SQL> set timing on
SQL>  --
SQL> insert into PURCHASEORDER_OR values ( XMLType(:DOCUMENT))
  2  /
1 row created.
Elapsed: 00:00:00.06
SQL>
SQL> insert into PURCHASEORDER_CLOB values ( XMLType(:DOCUMENT))
  2   /
1 row created.
Elapsed: 00:00:00.01
SQL>
SQL> insert into PURCHASEORDER_CSX values ( XMLType(:DOCUMENT))
  2  /
1 row created.
Elapsed: 00:00:00.03
SQL> commit;
Commit complete.
Elapsed: 00:00:00.01
SQL> create or replace synonym PURCHASEORDER for PURCHASEORDER_OR
  2  /
Synonym created.
Elapsed: 00:00:00.03
SQL> call appendLineItems(1001,2000)
  2  /
Call completed.
Elapsed: 00:00:04.78
SQL> call appendLineItems(2001,3000)
  2  /
Call completed.
Elapsed: 00:00:09.39
SQL> call appendLineItems(3001,4000)
  2  /
Call completed.
Elapsed: 00:00:13.93
SQL> call appendLineItems(4001,5000)
  2  /
Call completed.
Elapsed: 00:00:18.70
SQL> call appendLineItems(5001,6000)
  2  /
Call completed.
Elapsed: 00:00:23.65
SQL> call appendLineItems(6001,7000)
  2  /
Call completed.
Elapsed: 00:00:28.18
SQL> call appendLineItems(7001,8000)
  2  /
Call completed.
Elapsed: 00:00:32.98
SQL> call appendLineItems(8001,9000)
  2  /
Call completed.
Elapsed: 00:00:37.78
SQL> call appendLineItems(9001,10000)
  2  /
Call completed.
Elapsed: 00:00:43.03
SQL> select * from user_segments where segment_type like '%INDEX%'
  2  order by segment_type;
SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SU TABLESPACE_NAME                    BYTES    BLOCKS   EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS  MAX_SIZE RETENTI MINRETENTION PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_
SYS_C004114                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004115                                                   INDEX              ASSM       USERS                             393216        48         6          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004116                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004117                                                   INDEX              ASSM       USERS                             196608        24         3          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004118                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004120                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004119                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00005$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00011$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00016$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00025$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060324C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060305C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060328C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
15 rows selected.
Elapsed: 00:00:00.17
SQL> select * from user_segments;
SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SU TABLESPACE_NAME                    BYTES    BLOCKS   EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS  MAX_SIZE RETENTI MINRETENTION PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_
ACTION_TABLE                                                  NESTED TABLE       ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060305C00004$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060305C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004114                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
LINEITEM_TABLE                                                NESTED TABLE       ASSM       USERS                             917504       112        14          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004115                                                   INDEX              ASSM       USERS                             393216        48         6          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_OR                                              TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00004$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00004$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00005$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00005$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00011$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00011$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00016$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00016$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060304C00025$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060304C00025$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004116                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004117                                                   INDEX              ASSM       USERS                             196608        24         3          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004118                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_CLOB                                            TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060324C00003$$                                     LOBSEGMENT         ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_IL0000060324C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004119                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
PURCHASEORDER_CSX                                             TABLE              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_LOB0000060328C00003$$                                     LOBSEGMENT         SECUREFILE USERS                             131072        16         1         106496                       1   2.147E+09 2.147E+09 DEFAULT            0                                        DEFAULT
SYS_IL0000060328C00003$$                                      LOBINDEX           ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
SYS_C004120                                                   INDEX              ASSM       USERS                              65536         8         1          65536                       1   2.147E+09 2.147E+09                                                             DEFAULT
28 rows selected.
Elapsed: 00:00:00.17
SQL> select index_name, table_name, blevel, LEAF_BLOCKS, DISTINCT_KEYS, AVG_LEAF_BLOCKS_PER_KEY, AVG_DATA_BLOCKS_PER_KEY
  2  from user_indexes
  3  ;
INDEX_NAME                     TABLE_NAME                        BLEVEL LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY
SYS_C004114                    ACTION_TABLE                           0           1             1                       1                       1
SYS_IL0000060305C00004$$       ACTION_TABLE
SYS_C004115                    LINEITEM_TABLE                         1           2           511                       1                       1
SYS_C004119                    PURCHASEORDER_CLOB                     0           1             1                       1                       1
SYS_IL0000060324C00003$$       PURCHASEORDER_CLOB
SYS_C004120                    PURCHASEORDER_CSX                      0           1             1                       1                       1
SYS_IL0000060328C00003$$       PURCHASEORDER_CSX
SYS_C004116                    PURCHASEORDER_OR                       0           1             1                       1                       1
SYS_IL0000060304C00025$$       PURCHASEORDER_OR
SYS_IL0000060304C00016$$       PURCHASEORDER_OR
SYS_IL0000060304C00011$$       PURCHASEORDER_OR
SYS_IL0000060304C00005$$       PURCHASEORDER_OR
SYS_IL0000060304C00004$$       PURCHASEORDER_OR
SYS_C004117                    PURCHASEORDER_OR                       0           1             1                       1                       1
SYS_C004118                    PURCHASEORDER_OR                       0           1             1                       1                       1
15 rows selected.
Elapsed: 00:00:00.15
SQL> select dbms_lob.getlength(t.object_value.getclobval())
  2         as "XMLDocSize"
  3  from   PURCHASEORDER_OR t;
XMLDocSize
   1505177
1 row selected.
Elapsed: 00:00:00.42
SQL> set autotrace ON EXPLAIN
SQL> select count(*) from PURCHASEORDER, XMLTABLE (
  2  '/PurchaseOrder/LineItems/LineItem' passing OBJECT_VALUE)
  3  /
COUNT(*)
     9010
1 row selected.
Elapsed: 00:00:00.07
Execution Plan
Plan hash value: 3089669143
| Id  | Operation           | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
|   0 | SELECT STATEMENT    |                  |     1 |    53 |     9  (12)| 00:00:01 |
|   1 |  SORT AGGREGATE     |                  |     1 |    53 |            |          |
|*  2 |   HASH JOIN         |                  |   511 | 27083 |     9  (12)| 00:00:01 |
|   3 |    TABLE ACCESS FULL| PURCHASEORDER_OR |     1 |    34 |     3   (0)| 00:00:01 |
|*  4 |    TABLE ACCESS FULL| LINEITEM_TABLE   |   511 |  9709 |     5   (0)| 00:00:01 |
Predicate Information (identified by operation id):
   2 - access("NESTED_TABLE_ID"="PURCHASEORDER"."SYS_NC0003200033$")
   4 - filter("SYS_NC_TYPEID$" IS NOT NULL)

Similar Messages

  • Hierarchy Child Node Insert using ABAP Program

    Hi,
    Requirement is to add  one more child node to an existing child Node for available Custom Cost Center Hierarchy (in BI environment). To meet this requirement,  ABAP Code  is best solution- CMOD-Exit EXIT_SAPLRSAP_004 (ZXRSAU04).
    Is there any Function modules available for inserting Hierarchy Node. I have gone to "How to Download A Hierarchy to a Flat File.pdf" document.
    Any Sample Codes or any documents (on the above mentioned topic) or suggestions to achieve the result is highly appreciated.
    Regards,
    Sanni

    Any chance you could share what you did here?
    I am looking to read values from a hierarchy using ABAP, and am not sure where to start. Is there a standard table where hierarchy information is stored, or are custom tables created per hierarchy created?
    Cheers,
    Andrew

  • Update xml column by inserting any missing child nodes from a M_V

    Hello all,
    I am trying to update a xml column(col1) of a table (abc) by looping through, by selecting from a materialized view and find any missing (child) nodes in the existing table (abc) of a xml column (col1) on each rows, and then do update the xml column (col1) of table (abc). How to do this in Oracle pl/sql?.
    Thanks & Regards,
    Josh

    You do not need stored procedure for that. Use something like APPENDCHILDXML, INSERTCHILDXML or INSERTXMLBEFORE. For example, to insert a node into XML document:
    SELECT  APPENDCHILDXML(
                           XMLTYPE(
                                   CURSOR(
                                          SELECT  ENAME,
                                                  SAL
                                            FROM  EMP
                                            WHERE DEPTNO = 10
                          '//ROW',
                          XMLTYPE('<ROW><ENAME>user631757</ENAME><SAL>10000</SAL></ROW>')
                         ) EMP_XML
      FROM  DUAL
    EMP_XML
    <?xml version="1.0"?><ROWSET><ROW><ENAME>CLARK</ENAME><SAL>2450</SAL><ROW><ENAME
    user631757</ENAME><SAL>10000</SAL></ROW></ROW><ROW><ENAME>KING</ENAME><SAL>5000</SAL><ROW><ENAME>user631757</ENAME><SAL>10000</SAL></ROW></ROW><ROW><ENAME>MILL
    ER</ENAME><SAL>1300</SAL><ROW><ENAME>user631757</ENAME><SAL>10000</SAL></ROW></R
    OW></ROWSET>
    SELECT  INSERTXMLBEFORE(
                            XMLTYPE(
                                    CURSOR(
                                           SELECT  ENAME,
                                                   SAL
                                             FROM  EMP
                                             WHERE DEPTNO = 10
                           '//ROW[ENAME="KING"]',
                           XMLTYPE('<ROW><ENAME>user631757</ENAME><SAL>10000</SAL></ROW>')
                          ) EMP_XML
      FROM  DUAL
    EMP_XML
    <?xml version="1.0"?><ROWSET><ROW><ENAME>CLARK</ENAME><SAL>2450</SAL></ROW><ROW>
    <ENAME>user631757</ENAME><SAL>10000</SAL></ROW><ROW><ENAME>KING</ENAME><SAL>5000
    </SAL></ROW><ROW><ENAME>MILLER</ENAME><SAL>1300</SAL></ROW></ROWSET>
    SQL> SY.

  • Need to chart attribute value of just one child node of XML document

    I have a XML document with (for example) 7 parent nodes, each
    parent node has 5 child nodes. The parent nodes have an attribute
    @EarlierDTS (DateTime type) that is the x-axis category of a chart.
    Each child node has an attribute @eventid which specifies the id of
    the event, and another atttribute @NumOccurs which specifies how
    many times that event occured in that period.
    How do I tell Flex I want a simple line chart of the eventID
    = 215? What if I want two lines, for both eventID=215 and
    eventid=307?
    I have studied the posts and blogs for over a week now, and
    have seen this question or similar come up quite a few places, with
    no answer.
    1) Should I focus on learning how to create a filterfunction
    for the XMLList that underlies my XMLListCollection so that the
    filtered data view is just one child node per parent node ( or two
    child nodes for the second case)? And set the filtered data view as
    the dataprovider of my chart's vertical series?
    2) Should I focus on learning how to create a XML Filter
    query that selects just one or two child nodes for each parent
    node, and set the charts' series' dataprovider to this filter
    expression? (I don't think this is allowed - but I'm checking with
    the forum members...)
    3) Should I focus on learning how to convert the
    XMLListCollection into a HierarchicalData object, and then learning
    how to filter this object so there is only one (or two) childs per
    parent? This seems like a lot of coding - I almost have to create a
    pair of classes - one for the parent and one for the child - so I
    can create nested ArrayObjects.
    4) Should I create a brand new XMLList by walking the
    original XML list, and inserting Parent nodes and just the child
    nodes that match the eventID(s) I want to chart, into the new
    XMLList?
    I believe that the easiest way would be to create a
    Filterfunction for the XMLList, and bind the chart series to the
    (filtered) XML List. But the problem with this approach is that I
    have seen more than 2 posts asking how to accomplish filtering that
    removes specific children from the view, with no solutions posted.
    Help! What is the best way to get just one child for each
    parent, from an XMLList?

    "whertzing" <[email protected]> wrote in
    message
    news:[email protected]...
    >I have a XML document with (for example) 7 parent nodes,
    each parent node
    >has 5
    > child nodes. The parent nodes have an attribute
    @EarlierDTS (DateTime
    > type)
    > that is the x-axis category of a chart. Each child node
    has an attribute
    > @eventid which specifies the id of the event, and
    another atttribute
    > @NumOccurs
    > which specifies how many times that event occured in
    that period.
    >
    > How do I tell Flex I want a simple line chart of the
    eventID = 215? What
    > if I
    > want two lines, for both eventID=215 and eventid=307?
    >
    > I have studied the posts and blogs for over a week now,
    and have seen this
    > question or similar come up quite a few places, with no
    answer.
    >
    > 1) Should I focus on learning how to create a
    filterfunction for the
    > XMLList
    > that underlies my XMLListCollection so that the filtered
    data view is just
    > one
    > child node per parent node ( or two child nodes for the
    second case)? And
    > set
    > the filtered data view as the dataprovider of my chart's
    vertical series?
    >
    > 2) Should I focus on learning how to create a XML Filter
    query that
    > selects
    > just one or two child nodes for each parent node, and
    set the charts'
    > series'
    > dataprovider to this filter expression? (I don't think
    this is allowed -
    > but
    > I'm checking with the forum members...)
    >
    > 3) Should I focus on learning how to convert the
    XMLListCollection into a
    > HierarchicalData object, and then learning how to filter
    this object so
    > there
    > is only one (or two) childs per parent? This seems like
    a lot of coding -
    > I
    > almost have to create a pair of classes - one for the
    parent and one for
    > the
    > child - so I can create nested ArrayObjects.
    >
    > 4) Should I create a brand new XMLList by walking the
    original XML list,
    > and
    > inserting Parent nodes and just the child nodes that
    match the eventID(s)
    > I
    > want to chart, into the new XMLList?
    >
    > I believe that the easiest way would be to create a
    Filterfunction for the
    > XMLList, and bind the chart series to the (filtered) XML
    List. But the
    > problem
    > with this approach is that I have seen more than 2 posts
    asking how to
    > accomplish filtering that removes specific children from
    the view, with no
    > solutions posted.
    >
    > Help! What is the best way to get just one child for
    each parent, from an
    > XMLList?
    I'd just look at a dataFunction. There's an example here that
    may point you
    in the right direction:
    http://flexdiary.blogspot.com/2008/08/charting-example.html
    HTH;
    Amy

  • How To Display  attributes of Child Node and Parent Node in same view

    Suppose I have two view Carview and CarDetail View...IN Component context I have Parent Node Called Cars and It have its attribute as Price,Warranty,Year and also One Child Node Called as Brand Name Whose attribute are PrimaryBrand and SecondaryBrand..Now If I do Mapping of My First View i.e CarView with Child node of BrandName..and then I Have To Show Whole Detail of Car in CarDetailView.......How Can I Achieve it..

    Hi Vinay,
    You can map the child node and even the paren tnode to the same view if u want to display in the same window..
    If not if ur requirment is to dispaly in the sme view but should not map the child and parent to the Same view then you can take another new view.. and insert 2 view containers and then add the Child view and parent view in that view containers and then Diaplay the newly created view.
    Regards,
    Raju Bonagiri

  • DMEE : how to make parent node disappear when child node is empty

    Hi Friends ,
    Currently i am working on DMEE , I have a problem . When Child node is empty I donot want the parent node to appear in the tree.Here I am uisng a field via exit function module for childnode. so not a fpay* strucutre field to write a condition.
    Is there any other way for this ?
    Please help.
    Komaravolu

    I'm not sure if this can be done in DMEE tree, but there is BADI DMEE_BADI_01 that can be implemented to perform any kind of postprocessing right before the file is created. I used it, for example, to replace separators with tabs. I believe this can also be used to eliminate the unneeded nodes.

  • How to store multiple child nodes using dbms_xmlstore

    Hi,
    I'm using oracle 10g environment. In DBMS_XMLSTORE package I cannot able to insert the multiple child node value into db table.
    Here I have given the xml value
    <DATAPACKET REQUEST-ID="10001094">
      <HEADER>
        <SEARCH-RESULT-LIST>
          <SEARCH-RESULT-ITEM NAME="Ra-Al-Gul" CONFIDENCE-SCORE="750" BUREAU-ID="893991307899440">
            <IDENTIFIERS>
              <IDENTIFIER IDSOURCE="0001" MATCHED="TRUE"/>
            </IDENTIFIERS>
            <SURROGATES>
              <SURROGATE ID="CH0001" MATCHED="TRUE"/>
              <SURROGATE ID="CH0002" MATCHED="TRUE"/>
              <SURROGATE ID="CH0003" MATCHED="TRUE"/>
            </SURROGATES>
          </SEARCH-RESULT-ITEM>
        </SEARCH-RESULT-LIST>
      </HEADER>
    </DATAPACKET>for this xml data I have created the below table structure
    -- Table create script
    CREATE TABLE xml_insert (datapacket t_response );
    /* Type creation  code  */
    CREATE OR REPLACE TYPE t_response AS OBJECT
      "@REQUEST-ID" VARCHAR2(100),
      header        t_resp_header
    CREATE OR REPLACE TYPE t_resp_header AS OBJECT
      "SEARCH-RESULT-LIST"    t_search_item
    CREATE OR REPLACE TYPE t_search_item AS OBJECT
    ("SEARCH-RESULT-ITEM"      t_search_list);
    CREATE OR REPLACE TYPE t_search_list AS OBJECT
    ("@NAME"           VARCHAR2(300),
    "@CONFIDENCE-SCORE"      VARCHAR2(300),
    "@BUREAU-ID"           VARCHAR2(300),
    IDENTIFIERS           t_search_identifiers,
    SURROGATES           t_search_surrogates
    CREATE OR REPLACE TYPE t_search_identifiers AS OBJECT
    (IDENTIFIER           t_search_IDENTIFIER);
    CREATE OR REPLACE TYPE t_search_identifier AS OBJECT
      "@IDSOURCE"           VARCHAR2(20),
      "@MATCHED"           VARCHAR2(20)
    CREATE OR REPLACE TYPE t_search_surrogates AS OBJECT
    (SURROGATE           t_search_SURROGATE);
    CREATE OR REPLACE TYPE t_search_surrogate AS OBJECT
    "@ID"                VARCHAR2(20),
    "@MATCHED"           VARCHAR2(20)
    CREATE OR REPLACE TYPE tb_search_surrogate AS TABLE of t_search_SURROGATE;
    /and run this block
      DECLARE
      insCtx DBMS_XMLStore.ctxType;
      rows NUMBER;
      xmldoc CLOB :=
    <ROWSET>
    <ROW>
    <DATAPACKET REQUEST-ID="Q10001094">
      <HEADER>
        <SEARCH-RESULT-LIST>
          <SEARCH-RESULT-ITEM NAME="Anis kulam" CONFIDENCE-SCORE="750" BUREAU-ID="893991307899440">
            <IDENTIFIERS>
              <IDENTIFIER IDSOURCE="0001" MATCHED="TRUE"/>
            </IDENTIFIERS>
            <SURROGATES>
              <SURROGATE ID="CH0001" MATCHED="TRUE"/>
              <SURROGATE ID="CH0002" MATCHED="TRUE"/>
              <SURROGATE ID="CH0003" MATCHED="TRUE"/>
            </SURROGATES>
          </SEARCH-RESULT-ITEM>
        </SEARCH-RESULT-LIST>
      </HEADER>
    </DATAPACKET>
    </ROW>
    </ROWSET>';
    BEGIN
      insCtx := DBMS_XMLStore.newContext('xml_check');
      rows := DBMS_XMLStore.insertXML(insCtx, xmlDoc);
      DBMS_XMLStore.closeContext(insCtx);
    END;I got the following error
    Error Messgae :
    ORA-19031: XML element or attribute SURROGATE does not match any in type DOHADEV.T_CRB_SEARCH_SURROGATES
    ORA-06512: at "SYS.DBMS_XMLSTORE", line 78
    ORA-06512: at line 28

    Hi,
    A couple of comments to begin with :
    - Your setup script, test case and error message are not consistent with each other.
    - You've not chosen the easiest road with DBMS_XMLSTORE and nested objects. As pointed out in a previous thread of yours, the whole thing would be far more simple with XMLTable.
    Do you really need to store the data in an object-relational structure at the end, or do you intend to further break it down into relational rows and columns?
    Do you have an XML schema?

  • Fill the child node in create

    Hi, i want create new row, all work fine, i can fill the header node and it´s record in the backend... but, how can fill the child node?
    My code for create a row is:
        // add a new item
        // first an empty synbo is created and than the values are set
        public void addRowInDB(String syBName, String[] newValues) throws SmartSyncException, PersistenceException {
            String syncBoName = syBName;
            SyncBoDescriptor sbd = descriptorFacade.getSyncBoDescriptor(syncBoName);
            SmartSyncTransactionManager transactionManager;
            RowDescriptor sbdRowDesc = sbd.getTopRowDescriptor();
            // Create new syncbo
            SyncBo newsyncBo = dataFacade.createEmptySyncBo(sbd);
            Row worker = newsyncBo.getTopRow();
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("BSTNK"),newValues[0]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNAG"),newValues[1]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNWE"),newValues[2]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNRG"),newValues[3]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNZV"),newValues[4]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("AUART"),newValues[5]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("BSARK"),newValues[6]);     Date d = new Date(2008, 10, 10);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("ERDAT"),d);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("ERNAM"),newValues[8]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("VKORG"),newValues[9]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("VTWEG"),newValues[10]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("SURTIDO_COMPLETO"),newValues[11]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("TEMPORADA"),newValues[12]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("COLECCION"),newValues[13]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("TEMA"),newValues[14]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("SPART"),newValues[15]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("AUGRU"),newValues[16]);     worker.setFieldValue(sbdRowDesc.getFieldDescriptor("NOTAS"),newValues[17]);     
            dataFacade.insertSyncBo(newsyncBo);
    With this code only can fill the header, how can fill the child?
    Thanks,

    Hello, lot of thanks...
    Finally i can insert the root and the child in my DB SQL Studio... and i can see the data... But, when sync, no send the data, and not appear errors, and not appear block queue... What happend?
    My code is:
            SyncBoDescriptor sbd = descriptorFacade.getSyncBoDescriptor(syncBoName);
            SmartSyncTransactionManager transactionManager;
            RowDescriptor sbdRowDesc = sbd.getTopRowDescriptor();
            // Create new syncbo
            SyncBo newsyncBo = dataFacade.createEmptySyncBo(sbd);
            Row worker = newsyncBo.getTopRow();       
            transactionManager = dataFacade.getSmartSyncTransactionManager();
              worker.setFieldValue(sbdRowDesc.getFieldDescriptor("BSTNK"),newValues[0]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNAG"),newValues[1]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNWE"),newValues[2]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNRG"),newValues[3]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("PKUNZV"),newValues[4]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("AUART"),newValues[5]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("BSARK"),newValues[6]);     Date d = new Date(2008, 10, 10);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("ERDAT"),d);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("ERNAM"),newValues[8]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("VKORG"),newValues[9]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("VTWEG"),newValues[10]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("SURTIDO_COMPLETO"),newValues[11]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("TEMPORADA"),newValues[12]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("COLECCION"),newValues[13]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("TEMA"),newValues[14]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("SPART"),newValues[15]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("AUGRU"),newValues[16]);
    worker.setFieldValue(sbdRowDesc.getFieldDescriptor("NOTAS"),newValues[17]);
            dataFacade.insertSyncBo(newsyncBo);
            Row row = newsyncBo.createEmptyRow(sbd.getRowDescriptor("010"));
            SyncBo so = row.getSyncBo();
            RowDescriptor s = sbd.getRowDescriptor("010");
            row.setFieldValue(s.getFieldDescriptor("MATNR"),newValues[18]);
    row.setFieldValue(s.getFieldDescriptor("J_3ASIZE"),newValues[19]);
    Date da = new Date(2008, 10, 10);        row.setFieldValue(s.getFieldDescriptor("DT_ENTREGA"),da);
    row.setFieldValue(s.getFieldDescriptor("SEMANA"),newValues[21]);
    row.setFieldValue(s.getFieldDescriptor("MES"),newValues[22]);
    row.setFieldValue(s.getFieldDescriptor("NO_CANTBRUTA"),newValues[23]);
    so.insertRow(row);
    If i create without the child.. when sync, send the data...
    Regards,

  • Refresh Child Nodes of an af:treeTable

    I have two VOs with a master/detail relationship defined with a View Link. The master VO has a bind variable to change which set of master rows to return.
    I have an af:panelStretchLayout. The top facet has a form created by dragging the ExecuteWithParms from the Data Control for the master VO as a parameter form, and the center facet has an af:treeTable derived from the master VO with child nodes derived from the detail VO.
    When you see this on first page load, it is right: bind variable was set from the default for the bind variable, tree table shows correct information.
    But when I choose a different value for the bind variable and click the button to re-execute the query, the parent nodes are refreshed, but any parent nodes that weren't in the initial query results have no children, even though there ARE child rows in the database. In short, it re-queries the master VO, refreshes the treeTable, but does NOT re-query the detail VO.
    Now, I know that this is expected behavior - for better performance, ADF caches results and since the initial query didn't include children for these parents, there is no data to show. So my first thought was to add CacheResults="false" to the iterator. Nope. Tried a few different settings for Refresh attribute - nope (since the parent nodes ARE refreshing, I figured this wouldn't help, but it was worth a try). I tried the following method in the backing bean based on a suggestion in a blog entry:
    * Executes the query with the new parameter, then requeries the codes for each category.
    * @param actionEvent
    public void requeryServices(ActionEvent actionEvent) {
        DCBindingContainer bindings = (DCBindingContainer)JSFUtils.resolveExpression("#{bindings}");
        // First execute the query for the Categories
        bindings.getOperationBinding("ExecuteWithParams").execute();
        // Get the iterator and its View Object
        DCIteratorBinding categoriesViewIterator = bindings.findIteratorBinding("ServiceCategoriesView1Iterator");
        ViewObject categoriesView = categoriesViewIterator.getViewObject();
        // From the VO, get all the category rows.
        Row[] categoryRows = categoriesView.getAllRowsInRange();
        // For each category, find the ViewLinkAccessor, and execute the query for the codes.
        for (Row thisCategory : categoryRows) {
            RowSet codes = (RowSet)thisCategory.getAttribute("ServiceCodesView");
            codes.executeQuery();
        // Refresh the treeTable
        AdfFacesContext.getCurrentInstance().addPartialTarget(getServicesSelectionTree());
    }This doesn't work either - same results - parent is re-queried, children are not.
    What should I try next to get the child nodes to refresh?

    Sure, I know that I can get the binding container the other way - the sample code I was copying just happened to use JSFUtils, and I just happened to have it.
    Using JDev 11.1.2.3.
    The code I showed was just one of the ways I tried to solve this. The problem is that when I do an ExecuteWithParams on the tree binding, the children of that tree don't get re-executed. Suppose I have a tree table that looks like this when the page first displays and the tree is expanded:
    Item One
    <ul>
    <li>Child OneDotOne</li>
    <li>Child OneDotTwo</li>
    <li>Child OneDotThree</li>
    </ul>
    Item Two
    <ul>
    <li>Child TwoDotOne</li>
    <li>Child TwoDotTwo</li>
    <li>Child TwoDotThree</li>
    </ul>
    Item Four
    <ul>
    <li>Child FourDotOne</li>
    <li>Child FourDotTwo</li>
    <li>Child FourDotThree</li>
    </ul>
    Now I re-execute the parent query (using ExecuteWithParams) and give it a parameter that should give me:
    Item Two
    <ul>
    <li>Child TwoDotOne</li>
    <li>Child TwoDotTwo</li>
    <li>Child TwoDotThree</li>
    </ul>
    Item Three
    <ul>
    <li>Child ThreeDotOne</li>
    <li>Child ThreeDotTwo</li>
    <li>Child ThreeDotThree</li>
    </ul>
    Item Four
    <ul>
    <li>Child FourDotOne</li>
    <li>Child FourDotTwo</li>
    <li>Child FourDotThree</li>
    </ul>
    But what I actually get is:
    Item Two
    <ul>
    <li>Child TwoDotOne</li>
    <li>Child TwoDotTwo</li>
    <li>Child TwoDotThree</li>
    </ul>
    Item Three
    Item Four
    <ul>
    <li>Child FourDotOne</li>
    <li>Child FourDotTwo</li>
    <li>Child FourDotThree</li>
    </ul>
    Notice that even though Item Three has children, they don't show. The difference is that Items Two and Four were in the original results, but Item Three wasn't. If I browse the VOs in the AM Tester, Item Three's children show when I execute the parent with different parameters.
    I suppose I could try to replicate this problem with the HR schema. I'll try it Monday.

  • Inconsistent results for adding child node in a JTree

    I have a JTree where I add child nodes when a user clicks on the node or handle. When the user clicks on the node, through implementing TreeSelectionListener interface, I add a node, the tree expands, and I see the newly added node. However, when the user clicks on the handle, through implementing the TreeExpansionListener, the tree does not expand and I do not see the newly added node. The problem is repeatable by compiling the code below.
    Why is there this difference? Aren't all the methods implemented through the TreeSelectionListener and TreeExpansionListener in the SWT thread?
    public class TestFrame extends JFrame implements TreeSelectionListener, TreeExpansionListener {
         public TestFrame() {
              String[] alphabets = {
                        "a", "b", "c", "d", "e", "f", "g",
                        "h", "i", "j", "k", "l", "m", "n",
                        "o", "p", "q", "r", "s", "t", "u",
                        "v", "w", "x", "y", "z"
              DefaultMutableTreeNode top = new DefaultMutableTreeNode("CEDICT");
              for(int i=0; i < alphabets.length; i++) {
                   DefaultMutableTreeNode node =
                        new DefaultMutableTreeNode(alphabets) {
                        public boolean isLeaf() { return false; }
                   top.add(node);
              JTree tree = new JTree(top);
              tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
              tree.addTreeSelectionListener(this);
              tree.addTreeExpansionListener(this);
              tree.setShowsRootHandles(true);
              JScrollPane treePane = new JScrollPane(tree);
              treePane.setHorizontalScrollBarPolicy(
                        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
              treePane.setVerticalScrollBarPolicy(
                        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
              treePane.setSize(new Dimension(200,400));
              treePane.setPreferredSize(new Dimension(200,400));
              getContentPane().setLayout(new BorderLayout());
              getContentPane().add(treePane, BorderLayout.CENTER);
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              int inset = 50;
    setBounds(inset, inset,
    screenSize.width - inset*2,
    screenSize.height - inset*2);
              setLocationRelativeTo(null);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              pack();
              show();
         public static void main(String[] args) {
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        JFrame.setDefaultLookAndFeelDecorated(true);
                        TestFrame frame = new TestFrame();
         public void valueChanged(TreeSelectionEvent e) {
              JTree tree = (JTree)e.getSource();
              DefaultMutableTreeNode node =
                   (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
              System.out.println(node);
              Date date = new Date();
              node.add(new DefaultMutableTreeNode(date.toString()));
         public void treeCollapsed(TreeExpansionEvent event) {
              JTree tree = (JTree)event.getSource();
              TreePath path = event.getPath();
              DefaultMutableTreeNode node =
                   (DefaultMutableTreeNode) path.getLastPathComponent();
              System.out.println(node);
              Date date = new Date();
              node.add(new DefaultMutableTreeNode(date.toString()));
              tree.invalidate(); //does not help to show newly added child
         public void treeExpanded(TreeExpansionEvent event) {
              JTree tree = (JTree)event.getSource();
              TreePath path = event.getPath();
              DefaultMutableTreeNode node =
                   (DefaultMutableTreeNode) path.getLastPathComponent();
              System.out.println(node);
              Date date = new Date();
              node.add(new DefaultMutableTreeNode(date.toString()));
              tree.invalidate(); //does not help to show newly added child

    I couldn't figure out why inserting a node in the valueChanged(...) method works. In all three methods no listeners are notified about the change, so you would think all three would fail.
    For a JTree using the DefaultTreeModel the nodesWereInserted(...) method needs to be called. For example, if I change your last three methods to this
    public void valueChanged(TreeSelectionEvent e) {
       insertNode((JTree) e.getSource(),
                  (MutableTreeNode) e.getPath().getLastPathComponent());
    public void treeCollapsed(TreeExpansionEvent event) {
       insertNode((JTree) event.getSource(),
                  (MutableTreeNode) event.getPath().getLastPathComponent());
    public void treeExpanded(final TreeExpansionEvent event) {
       insertNode((JTree) event.getSource(),
                  (MutableTreeNode) event.getPath().getLastPathComponent());
    public void insertNode(JTree tree, MutableTreeNode parent) {
        Date date = new Date();
        MutableTreeNode child = new DefaultMutableTreeNode(date.toString());
        int index = parent.getChildCount();
        parent.insert(child,index);
        ((DefaultTreeModel) tree.getModel())
                .nodesWereInserted(parent,new int[]{index});
    }then it works as you desire. You can (and should) of course use the DefaultTreeModel's own insert method.
    DefaultTreeModel#insertNodeInto(MutableTreeNode,MutableTreeNode, int)

  • Missing child nodes

    I am attempting to insert text nodes into an existing document (fragment as follows):
    <sender>
         <concat>
              <freetext supplied_at_runtime="no">The sender of this letter is:</freetext>
              <db_column colname="off_title"/>
              <db_column colname="off_initials"/>
              <db_column colname="off_surname"/>
         </concat>
         <freetext supplied_at_runtime="no">Who works at:</freetext>
         <db_column colname="off_h_name"/>
         <concat>
              <db_column colname="off_h_num"/>
              <db_column colname="off_street"/>
         </concat>
         <freetext supplied_at_runtime="no">rest of address</freetext>
    </sender>
    The problem is that when I run the following fragment of code:
    Node sender_node = document.getElementsByTagName("sender").item(0);
    NodeList child_nodes = sender_node.getChildNodes();
    for (int i = 0; i < child_nodes.getLength(); i++){
    out.println("NODE NAME: " + child_nodes.item(i).getNodeName());
    if(child_nodes.item(i).getNodeName().equals("db_column")){
    out.println("Found db column: " + i);
    I get the following results:
    NODE NAME: #text
    NODE NAME: concat
    NODE NAME: #text
    NODE NAME: freetext
    NODE NAME: #text
    NODE NAME: db_column
    Found db column: 5
    NODE NAME: #text
    NODE NAME: concat
    NODE NAME: #text
    NODE NAME: freetext
    NODE NAME: #text
    Somehow there are a number of child nodes that I am expecting to come out that aren't. It looks as if the nodes are being 'lost' somehow. Could someone explain to me what is happening, please?

    Well, everything seems to be quite correct... Let's see your xml with indent. I'll mark the nodes you've recieved with ********
    <sender>
    <concat> ********
    <freetext supplied_at_runtime="no">The sender of this letter is:</freetext>
    <db_column colname="off_title"/>
    <db_column colname="off_initials"/>
    <db_column colname="off_surname"/>
    </concat>
    <freetext supplied_at_runtime="no">Who works at:</freetext> ********
    <db_column colname="off_h_name"/> ********
    <concat> ********
    <db_column colname="off_h_num"/>
    <db_column colname="off_street"/>
    </concat>
    <freetext supplied_at_runtime="no">rest of address</freetext> ********
    </sender>
    So we've got five entity nodes as children of the root node. Seems to be correct...

  • Oltp insert performance

    Hi Experts ,
    1. could someone guide me on understanding what are things that impact insert performance in an oltp application with ~25 concurrent sessions doing 20 inserts/session  into  table X. ? (env- oracle 11g ,3 node RAC , ASSM tablespace , tables X is range partitioned )
    2. If any storage parameter is not property set then how to identify which one needs to be fixed?
    Note: current insert performance is : 0.02 sec/insert.

    Hi Garry,
    Thanks for your response.
    some more info regarding app : DB version  11.2.0.3 . Below is the awr info during peak load for 1 hr snap. any suggestions are helpful.
    Cache Sizes                       Begin        End
    ~~~~~~~~~~~                  ---------- ----------
                   Buffer Cache:    18,624M    18,624M  Std Block Size:         8K
               Shared Pool Size:     3,200M     3,200M      Log Buffer:    25,888K
    Load Profile              Per Second    Per Transaction   Per Exec   Per Call
    ~~~~~~~~~~~~         ---------------    --------------- ---------- ----------
          DB Time(s):                     4.9                0.0                 0.01       0.00    
           DB CPU(s):                0.5                     0.0                 0.00       0.00         
           Redo size:               585,778.7            2,339.6
       Logical reads:                24,046.6               96.0
       Block changes:            2,374.5                9.5
      Physical reads:            1,101.6                4.4
    Physical writes:              394.6                1.6
          User calls:                 2,086.6                8.3
              Parses:                9.5                     0.0
         Hard parses:                     0.5                     0.0
    W/A MB processed:                5.8                0.0
              Logons:                     0.6                     0.0
            Executes:                   877.7                     3.5
           Rollbacks:                   218.6                     0.9
        Transactions:              250.4
    Instance Efficiency Percentages (Target 100%)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Buffer Nowait %:   99.99       Redo NoWait %:   99.99
                Buffer  Hit   %:   95.44    In-memory Sort %:  100.00
                Library Hit   %:   99.81        Soft Parse %:   95.16
             Execute to Parse %:   98.92         Latch Hit %:   99.89
    Parse CPU to Parse Elapsd %:   92.50     % Non-Parse CPU:   97.31
    Shared Pool Statistics        Begin    End
                 Memory Usage %:   75.36   74.73
        % SQL with executions>1:   90.63   90.41
      % Memory for SQL w/exec>1:   83.10   85.49
    Top 5 Timed Foreground Events
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Event                                 Waits               Time(s)   Avg(ms)     %DBtime       Wait Class    
    db file sequential read           3,686,200      15,658      4                  87.7            User I/O              
    DB CPU                                                      1,802                         10.1                             
    db file parallel read                19,646              189         10                 1.1            User I/O    
    gc current grant 2-way              842,079         145          0               .8                 Cluster
    gc current block 2-way              425,663         106           0               .6            Cluster

  • How to retrieve a child node's immediate parent node from a tree table?

    Hello
    Hi,
    I have a category_subcategories table, and I would like to know how to construct a sql and sub-sql for retrieving a child node's immediate parent node.
    Here is my first part of the sql, it only returns the node "Flash"'s parent and its grand-parents:
    SELECT parent.category_name, node.lft, node.rgt
    FROM category_subcategories AS node,
    category_subcategories AS parent
    WHERE node.lft > parent.lft AND node.lft < parent.rgt
    AND node.category_name = 'FLASH'
    ORDER BY parent.lft;
    | name |
    | ELECTRONICS |
    | PORTABLE ELECTRONICS |
    | MP3 PLAYERS | |
    how can I modify this query so that it returns Flash' parent - 'MP3 Players'?
    Thanks a lot
    Sam

    Hi,
    This is an Oracle forum. If you're not iusing Oracle, make that clear. Always say what version of your softwate you're using, whether it's Oracle or anything else.
    Whenever you have a question, post a little sample data (CREATE TABLE and INSERT statements), and the results you want from that data. Explain how you get those results from that data.
    It looks like you're using the Nested Sets technique for modeling a tree. To get the parents of given nodes, do something like this:
    SELECT        parent.category_name
    ,       node.lft
    ,       node.rgt
    FROM        category_subcategories      node     -- Can't use AS with table alias in Oracle
    ,       category_subcategories      parent
    WHERE        parent.lft      IN (
                        SELECT     MAX (lft)
                        FROM     category_subcategories
                        WHERE     lft     < node.lft
                        AND     rgt     > node.rgt
    AND        node.category_name          = 'FLASH'
    ORDER BY  parent.lft; This should work in Oracle 8.1 and up. (I can't actually test it unless you post CREATE TABLE and INSERT statements for some sample data). You may need to modify the syntax a little for your database.
    785102 wrote:
    Hello,
    I tried to implement the solution as follow:
    mysql> select parent.*
    -> from category_subcategories as parent
    -> having parent.lft =
    -> (select max(parent.lft) from
    -> (SELECT parent.category_name, parent.lft, parent.rgt
    -> FROM category_subcategories AS node,
    -> category_subcategories AS parent
    -> WHERE node.lft > parent.lft AND node.lft < parent.rgt
    -> AND node.category_name = 'Sofa'
    -> ORDER BY parent.lft
    -> )
    -> );
    ERROR 1248 (42000): Every derived table must have its own alias
    mysql>
    But I got an error.
    What is wrong with it?What does the error message say?
    Apparantly, in your system (unlike Oracle), every sub-query must have a name. Try something like this:
    select      parent.*
    from      category_subcategories as parent
    having      parent.lft = (
                   select      max(parent.lft)
                   from     (
                             SELECT        parent.category_name
                             ,       parent.lft
                             ,       parent.rgt
                             FROM        category_subcategories      AS node,
                                    category_subcategories      AS parent
                             WHERE        node.lft      > parent.lft
                             AND        node.lft      < parent.rgt
                             AND        node.category_name = 'Sofa'
                             ORDER BY  parent.lft     -- Is this a waste of effort?
                        )  AS got_name_lft_and_rgt
                  )     AS got_lft
    ;What is the purpose of having the inner sub-query, the one I called got_name_lft_and_rgt?
    Also, in Oracle, an ORDER BY clause in a sub-query doesn;t guarantee that any super-queries will keep that order. Why do you have an ORDER BY clause in the sub-query, and not in the main query?

  • Invoking BPEL partnerlink each for one child node

    Hi
    I have a requirement for invoking partnerlink (DB Adapter) for each child node of input message of BPEL service! E.g. I have to update or insert an employee! I received list of of employees in input message like below.
    <employee_list>
         <employee>
              <name> Ram </name>
              <Age> 21 </Age>
              <dept> IT </dept>
              <isNew>N</isNew>
         </employee>
         <employee>
              <name> Hari </name>
              <Age> 21 </Age>
              <dept> IT </dept>
              <isNew>Y</isNew>
         </employee>
    </employee_list>
    So the requirement is to call DB_Call partnerlink for each employee node in above!
    Is this possible in BPEL? If yes, how?
    Thanks In Advance
    Priyadarshi

    Yes you can, use a fo reach loop in bpel, loop for the count of employee, then have an if condition to check whether you want to update or insert for and use invoke node to call the appropriate operation.I hope you have gone through the upsert operation in database adpater which automatically supports insert or update. If a record is present it updates else inserts a new one.

  • Problem with childs nodes and automatic key mapping in a Data Object

    Hi experts!
    I'm doing the service order tutorial from the mobile help at [this link|http://help.sap.com/saphelp_nwmobile71/helpdata/en/21/9b5b924c3b434fba4767731794b029/frameset.htm] and I have a problem...
    In the topic "Modeling the Equipment Data Object", says you have to mark the "Automatic Key Mapping" checkbox. So when I had to create a third child node ( the location node ) the system raised an exception with the message "Deselect automatic key mapping flag for more than two-level nodes". I'm trying deselecting the flag and creating the location node, but when I want mark again the automatic key mapping flag, this is disabled.
    What can I do to solve this and create the three child nodes with the flag marked? It's a configuration thing?
    Any help it's very welcome. Thanks in advance.
    Best regards,
    Simon.

    The thing is: Its not allowed to use automatic keymapping if you have more than two levels. This is why the message showed up, and this is why its been disabled.
    What automatic keymapping does: Figures out automatically which child node belongs to which parent (by guessing from the field name and type, which fields in the child correspond to which key fields of the parent).
    On three levels, this becomes more complicated => Its disabled.
    How to do keymapping yourself instead of having the DOE do it automatically: Do 'Explicit keymapping' from each child to its parent. Explicit keymapping is done by clicking on the corresponding menu button in the child node. Here you need to associate child node fields (they need not be key fields of the child, but they are allowed to be that as well) to each of its parent nodes key fields (so that each child can be associated to its parent).
    Cheers

Maybe you are looking for