<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FXML%2FXMLType</id>
		<title>Oracle PL/SQL/XML/XMLType - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FXML%2FXMLType"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/XML/XMLType&amp;action=history"/>
		<updated>2026-05-25T03:26:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/XML/XMLType&amp;diff=1324&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/XML/XMLType&amp;diff=1324&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/XML/XMLType&amp;diff=1325&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/XML/XMLType&amp;diff=1325&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Call existsNode() function from xmltype data==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2    (myID            NUMBER PRIMARY KEY,&lt;br /&gt;
  3     myValue         XMLTYPE&lt;br /&gt;
  4  )XMLTYPE myValue STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select COUNT(*)&lt;br /&gt;
  2  from myTable d&lt;br /&gt;
  3  where d.myValue.existsNode(&amp;quot;/ROWSET&amp;quot;) = 1&lt;br /&gt;
  4  /&lt;br /&gt;
  COUNT(*)&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create a table to hold the simple &amp;quot;Hello World&amp;quot; XML document==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2  (id  NUMBER PRIMARY KEY&lt;br /&gt;
  3  ,doc XMLType NOT NULL)&lt;br /&gt;
  4  XMLTYPE doc STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2      v_doc  XMLType;&lt;br /&gt;
  3      v_text varchar2(100);&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5      select doc into v_doc from myTable&lt;br /&gt;
  6      where id = 2;&lt;br /&gt;
  7&lt;br /&gt;
  8      v_text := v_doc.extract(&amp;quot;/message/body/text()&amp;quot; ).getstringval;&lt;br /&gt;
  9&lt;br /&gt;
 10      dbms_output.put_line(v_text);&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create table myTable of xmltype==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; create table myTable of xmltype;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable values(XMLTYPE(&amp;quot;&lt;br /&gt;
  2    &amp;lt;customer&amp;gt;&lt;br /&gt;
  3     &amp;lt;name&amp;gt;name value&amp;lt;/name&amp;gt;&lt;br /&gt;
  4     &amp;lt;telephone&amp;gt;123 555-1234&amp;lt;/telephone&amp;gt;&lt;br /&gt;
  5    &amp;lt;/customer&amp;gt;&amp;quot;))&lt;br /&gt;
  6  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myTable;&lt;br /&gt;
&lt;br /&gt;
SYS_NC_ROWINFO$&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
  &amp;lt;customer&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;name value&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;telephone&amp;gt;123 555-1234&amp;lt;/telephone&amp;gt;&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creation of tables using XMLType data type and set the xml schema==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE xml_or (&lt;br /&gt;
  2     id    NUMBER PRIMARY KEY,&lt;br /&gt;
  3     doc   XMLTYPE)&lt;br /&gt;
  4     XMLTYPE doc STORE AS OBJECT RELATIONAL&lt;br /&gt;
  5        XMLSCHEMA &amp;quot;http://127.0.0.1/xdoc.xsd&amp;quot;&lt;br /&gt;
  6        ELEMENT &amp;quot;doc&amp;quot;&lt;br /&gt;
  7  /&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==dbms_metadata.get_xml==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; set long 32000&lt;br /&gt;
SQL&amp;gt; set heading off&lt;br /&gt;
SQL&amp;gt; set pagesize 32000&lt;br /&gt;
SQL&amp;gt; spool xml&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select dbms_metadata.get_xml(&amp;quot;TABLE&amp;quot;, &amp;quot;emp&amp;quot;, &amp;quot;sqle&amp;quot;) from dual;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; spool off&lt;br /&gt;
SQL&amp;gt; Set heading on&lt;br /&gt;
SQL&amp;gt; set pagesize 20&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extract can be used in WHERE clause to search xml document==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY&lt;br /&gt;
  3      ,doc XMLType NOT NULL&lt;br /&gt;
  4  )&lt;br /&gt;
  5  XMLTYPE doc STORE AS CLOB&lt;br /&gt;
  6  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; select doc&lt;br /&gt;
  2  from myTable&lt;br /&gt;
  3  where extract(doc, &amp;quot;/message/greeting/text()&amp;quot;)&lt;br /&gt;
  4        like &amp;quot;%it may concern%&amp;quot;&lt;br /&gt;
  5  /&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert xml document to a XMLType column with xmltype function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY,&lt;br /&gt;
  3      emps XMLType NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myTable VALUES (1, xmltype(&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;no&amp;quot;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
  2  &amp;lt;emps&amp;gt;&lt;br /&gt;
  3      &amp;lt;emp&amp;gt;&lt;br /&gt;
  4          &amp;lt;home_address&amp;gt;address 1&amp;lt;/home_address&amp;gt;&lt;br /&gt;
  5      &amp;lt;/emp&amp;gt;&lt;br /&gt;
  6  &amp;lt;/emps&amp;gt;&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select extract(emps, &amp;quot;/emps/emp/home_address/text()&amp;quot; )&lt;br /&gt;
  2  from myTable&lt;br /&gt;
  3  /&lt;br /&gt;
&lt;br /&gt;
EXTRACT(EMPS,&amp;quot;/EMPS/EMP/HOME_ADDRESS/TEXT()&amp;quot;)&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
address 1&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PL/SQL ability to access text within an XML document in the database==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2  (id  NUMBER PRIMARY KEY&lt;br /&gt;
  3  ,doc XMLType NOT NULL)&lt;br /&gt;
  4  XMLTYPE doc STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2      v_doc  XMLType;&lt;br /&gt;
  3      v_text varchar2(100);&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5      select doc into v_doc from myTable&lt;br /&gt;
  6      where id = 2;&lt;br /&gt;
  7&lt;br /&gt;
  8      v_text := v_doc.extract(&amp;quot;/message/body/text()&amp;quot; ).getstringval;&lt;br /&gt;
  9&lt;br /&gt;
 10      dbms_output.put_line(v_text);&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query xmltype column==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2     id number(9),&lt;br /&gt;
  3     myValue xmltype&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2    dbms_xmlschema.registerSchema (&amp;quot;http://d.ru/myType.xsd&amp;quot;,xdbURIType(&amp;quot;/xsd/myType.xsd&amp;quot;).getClob(),True,True,False,True);&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable values (67, XMLTYPE(&amp;quot;&amp;lt;myType xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:noNamespaceSchemaLocation=&amp;quot;http://d.ru/myType.xsd&amp;quot;&amp;gt;&lt;br /&gt;
  2       &amp;lt;value1&amp;gt;1&amp;lt;/value1&amp;gt;&lt;br /&gt;
  3       &amp;lt;value2&amp;gt;2&amp;lt;/value2&amp;gt;&lt;br /&gt;
  4   &amp;lt;/myType&amp;gt;&amp;quot;))&lt;br /&gt;
  5  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myTable;&lt;br /&gt;
&lt;br /&gt;
   emp&lt;br /&gt;
Number&lt;br /&gt;
------&lt;br /&gt;
MYVALUE&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
    67&lt;br /&gt;
&amp;lt;myType xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-in&lt;br /&gt;
stance&amp;quot; xsi:noNamespaceSch&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Store an XMLType type data in clob==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2    (myID            NUMBER PRIMARY KEY,&lt;br /&gt;
  3     myValue     XMLTYPE )&lt;br /&gt;
  4     XMLTYPE myValue STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Update (i.e. replace) the entire XMLType column with new content==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2  (id  NUMBER PRIMARY KEY&lt;br /&gt;
  3  ,doc XMLType NOT NULL)&lt;br /&gt;
  4  XMLTYPE doc STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; update myTable&lt;br /&gt;
  2  set doc = xmltype(&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
  3  &amp;lt;message type=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  4    &amp;lt;greeting&amp;gt;Hi&amp;lt;/greeting&amp;gt;&lt;br /&gt;
  5    &amp;lt;body&amp;gt;body!&amp;lt;/body&amp;gt;&lt;br /&gt;
  6  &amp;lt;/message&amp;gt;&lt;br /&gt;
  7  &amp;quot;);&lt;br /&gt;
0 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Aggregrate functions on XML data==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable&lt;br /&gt;
  2    (myID            NUMBER PRIMARY KEY,&lt;br /&gt;
  3     myValue     XMLTYPE )&lt;br /&gt;
  4     XMLTYPE myValue STORE AS CLOB&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; select count(extract(myValue,&amp;quot;/ROWSET&amp;quot;)  )&lt;br /&gt;
  2         AS count&lt;br /&gt;
  3  from myTable;&lt;br /&gt;
     COUNT&lt;br /&gt;
----------&lt;br /&gt;
         0&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Text() function to get text value from xml string==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY,&lt;br /&gt;
  3      emps XMLType NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myTable VALUES (1, xmltype(&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;no&amp;quot;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
  2  &amp;lt;emps&amp;gt;&lt;br /&gt;
  3      &amp;lt;emp&amp;gt;&lt;br /&gt;
  4          &amp;lt;home_address&amp;gt;address 1&amp;lt;/home_address&amp;gt;&lt;br /&gt;
  5      &amp;lt;/emp&amp;gt;&lt;br /&gt;
  6  &amp;lt;/emps&amp;gt;&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select extract(emps, &amp;quot;/emps/emp/home_address/text()&amp;quot; )&lt;br /&gt;
  2  from myTable&lt;br /&gt;
  3  /&lt;br /&gt;
&lt;br /&gt;
EXTRACT(EMPS,&amp;quot;/EMPS/EMP/HOME_ADDRESS/TEXT()&amp;quot;)&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
address 1&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use value function with single xmltype table==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; create table myTable of xmltype;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable values(XMLTYPE(&amp;quot;&lt;br /&gt;
  2    &amp;lt;customer&amp;gt;&lt;br /&gt;
  3     &amp;lt;name&amp;gt;Chris&amp;lt;/name&amp;gt;&lt;br /&gt;
  4      &amp;lt;telephone&amp;gt;123 555-1234&amp;lt;/telephone&amp;gt;&lt;br /&gt;
  5    &amp;lt;/customer&amp;gt;&amp;quot;))&lt;br /&gt;
  6  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myTable;&lt;br /&gt;
&lt;br /&gt;
SYS_NC_ROWINFO$&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
  &amp;lt;customer&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;Chris&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;telephone&amp;gt;123 555-1234&amp;lt;/telephone&amp;gt;&lt;br /&gt;
  &amp;lt;/&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update myTable c&lt;br /&gt;
  2  set value(c) = updateXML(value(c), &amp;quot;/customer/name/text()&amp;quot;,&amp;quot;new value&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select extractvalue(value(c),&amp;quot;/customer/telephone&amp;quot;)&lt;br /&gt;
  2  from myTable c&lt;br /&gt;
  3  where existsnode(value(c),&amp;quot;/customer/name = &amp;quot;Chris&amp;quot;&amp;quot;) = 1&lt;br /&gt;
  4  /&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use xmltype to convert xml string to xmltype data==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY,&lt;br /&gt;
  3      emps XMLType NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myTable VALUES (1, xmltype(&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;no&amp;quot;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
  2  &amp;lt;emps&amp;gt;&lt;br /&gt;
  3      &amp;lt;emp&amp;gt;&lt;br /&gt;
  4          &amp;lt;home_address&amp;gt;address 1&amp;lt;/home_address&amp;gt;&lt;br /&gt;
  5      &amp;lt;/emp&amp;gt;&lt;br /&gt;
  6  &amp;lt;/emps&amp;gt;&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select extract(emps, &amp;quot;/emps/emp/home_address/text()&amp;quot; )&lt;br /&gt;
  2  from myTable&lt;br /&gt;
  3  /&lt;br /&gt;
&lt;br /&gt;
EXTRACT(EMPS,&amp;quot;/EMPS/EMP/HOME_ADDRESS/TEXT()&amp;quot;)&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
address 1&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Without the text() operator, returns node name + text value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY&lt;br /&gt;
  3      ,doc XMLType NOT NULL&lt;br /&gt;
  4  )&lt;br /&gt;
  5  XMLTYPE doc STORE AS CLOB&lt;br /&gt;
  6  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; select extract(doc, &amp;quot;/message/greeting&amp;quot;)&lt;br /&gt;
  2  from myTable;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XMLtype column==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myTable(&lt;br /&gt;
  2      id  NUMBER PRIMARY KEY,&lt;br /&gt;
  3      emps XMLType NOT NULL&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myTable VALUES (1, xmltype(&amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;no&amp;quot;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
  2  &amp;lt;emps&amp;gt;&lt;br /&gt;
  3      &amp;lt;emp&amp;gt;&lt;br /&gt;
  4          &amp;lt;home_address&amp;gt;address 1&amp;lt;/home_address&amp;gt;&lt;br /&gt;
  5      &amp;lt;/emp&amp;gt;&lt;br /&gt;
  6  &amp;lt;/emps&amp;gt;&amp;quot;)&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select extract(emps, &amp;quot;/emps/emp/home_address/text()&amp;quot; )&lt;br /&gt;
  2  from myTable&lt;br /&gt;
  3  /&lt;br /&gt;
&lt;br /&gt;
EXTRACT(EMPS,&amp;quot;/EMPS/EMP/HOME_ADDRESS/TEXT()&amp;quot;)&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
address 1&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XMLTYPE with xml schema==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; create table myTable(&lt;br /&gt;
  2     id number(9),&lt;br /&gt;
  3     myValue xmltype&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2    dbms_xmlschema.registerSchema (&amp;quot;http://d.ru/myType.xsd&amp;quot;,xdbURIType(&amp;quot;/xsd/myType.xsd&amp;quot;).getClob(),True,True,False,True);&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into myTable values (67, XMLTYPE(&amp;quot;&amp;lt;myType xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:noNamespaceSchemaLocation=&amp;quot;http://d.ru/myType.xsd&amp;quot;&amp;gt;&lt;br /&gt;
  2       &amp;lt;value1&amp;gt;1&amp;lt;/value1&amp;gt;&lt;br /&gt;
  3       &amp;lt;value2&amp;gt;2&amp;lt;/value2&amp;gt;&lt;br /&gt;
  4   &amp;lt;/myType&amp;gt;&amp;quot;))&lt;br /&gt;
  5  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from myTable;&lt;br /&gt;
&lt;br /&gt;
   emp&lt;br /&gt;
Number&lt;br /&gt;
------&lt;br /&gt;
MYVALUE&lt;br /&gt;
------------------------------------------------------&lt;br /&gt;
    67&lt;br /&gt;
&amp;lt;myType xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-in&lt;br /&gt;
stance&amp;quot; xsi:noNamespaceSch&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>