skip to main content
Part 2: The 32-Bit/64-Bit Drivers : The Oracle Wire Protocol Driver : Data Types : Examples
  
Examples
If the XMLType column is created with the CLOB storage type, then the driver returns it without use of the special getClobVal function, that is, you can use:
SELECT XML_col FROM table_name...
instead of
SELECT XML_col.getClobVal()...
The following example illustrates using the CLOB storage type:
CREATE TABLE po_xml_tab(
  poid NUMBER(10),
  poDoc XMLTYPE
  )
  XMLType COLUMN poDoc
    STORE AS CLOB (
      TABLESPACE lob_seg_ts
      STORAGE (INITIAL 4096 NEXT 4096)
      CHUNK 4096 NOCACHE LOGGING
    );
The next example illustrates how to create a table, insert data, and retrieve data when not using the CLOB storage type:
CREATE TABLE PURCHASEORDER (PODOCUMENT sys.XMLTYPE);
The PURCHASEORDER table contains one column—PODOCUMENT—with a data type of XMLType (sys.XMLTYPE). The next step is to insert one purchase order, created by the static function sys.XMLTYPE.createXML:
INSERT INTO PURCHASEORDER (PODOCUMENT) values (
sys.XMLTYPE.createXML(
'<PurchaseOrder>
   <Reference>BLAKE-2001062514034298PDT</Reference>
   <Actions>
      <Action>
         <User>KING</User>
         <Date/>
      </Action>
   </Actions>
   <Reject/>
   <Requester>David E. Blake</Requester>
   <User>BLAKE</User>
   <CostCenter>S30</CostCenter>
   <ShippingInstructions>
      <name>David E. Blake</name>
      <address>400 Oracle Parkway Redwood Shores, CA, 94065 USA</address>
      <telephone>650 999 9999</telephone>
    </ShippingInstructions>
   <SpecialInstructions>Air Mail</SpecialInstructions>
   <LineItems>
      <LineItem ItemNumber="1">
         <Description>The Birth of a Nation</Description>
         <Part Id="EE888" UnitPrice="65.39" Quantity="31"/>
      </LineItem>
   </LineItems>
</PurchaseOrder>
'));
Use the getClobVal function to retrieve the data:
SELECT p.podocument.getClobVal() FROM PURCHASEORDER p;