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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/XML/Introduction&amp;diff=3346&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/XML/Introduction&amp;diff=3346&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</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://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/XML/Introduction&amp;diff=3347&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/XML/Introduction&amp;diff=3347&amp;oldid=prev"/>
				<updated>2010-05-26T10:06:01Z</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;== 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;
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;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Create table based on single data type==&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;
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.&amp;lt;/source&amp;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;
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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== SQL to XML==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Generating XML from &amp;quot;Ordinary&amp;quot; Tables&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Oracle provides a function, XMLElement, that transforms data into XML format.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The function takes two arguments ?a the tag name and the data. Consider this example:&amp;lt;/p&amp;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;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL,&lt;br /&gt;
  3    First_Name         VARCHAR2(10 BYTE),&lt;br /&gt;
  4    Last_Name          VARCHAR2(10 BYTE),&lt;br /&gt;
  5    Start_Date         DATE,&lt;br /&gt;
  6    End_Date           DATE,&lt;br /&gt;
  7    Salary             Number(8,2),&lt;br /&gt;
  8    City               VARCHAR2(10 BYTE),&lt;br /&gt;
  9    Description        VARCHAR2(15 BYTE)&lt;br /&gt;
 10  )&lt;br /&gt;
 11  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2               values (&amp;quot;01&amp;quot;,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  to_date(&amp;quot;19960725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20060725&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;02&amp;quot;,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;, to_date(&amp;quot;19760321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19860221&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;03&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,   to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19900315&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;04&amp;quot;,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,    to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19990421&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary,  City,       Description)&lt;br /&gt;
  2                values(&amp;quot;05&amp;quot;,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,   to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980808&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;06&amp;quot;,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,   to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19960104&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;07&amp;quot;,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,   to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;19980212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(ID,  First_Name, Last_Name, Start_Date,                     End_Date,                       Salary, City,        Description)&lt;br /&gt;
  2                values(&amp;quot;08&amp;quot;,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), to_date(&amp;quot;20020415&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row 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; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
ID   FIRST_NAME           LAST_NAME            START_DAT END_DATE      SALARY CITY       DESCRIPTION&lt;br /&gt;
---- -------------------- -------------------- --------- --------- ---------- ---------- ---------------&lt;br /&gt;
01   Jason                Martin               25-JUL-96 25-JUL-06    1234.56 Toronto    Programmer&lt;br /&gt;
02   Alison               Mathews              21-MAR-76 21-FEB-86    6661.78 Vancouver  Tester&lt;br /&gt;
03   James                Smith                12-DEC-78 15-MAR-90    6544.78 Vancouver  Tester&lt;br /&gt;
04   Celia                Rice                 24-OCT-82 21-APR-99    2344.78 Vancouver  Manager&lt;br /&gt;
05   Robert               Black                15-JAN-84 08-AUG-98    2334.78 Vancouver  Tester&lt;br /&gt;
06   Linda                Green                30-JUL-87 04-JAN-96    4322.78 New York   Tester&lt;br /&gt;
07   David                Larry                31-DEC-90 12-FEB-98    7897.78 New York   Manager&lt;br /&gt;
08   James                Cat                  17-SEP-96 15-APR-02    1232.78 Vancouver  Tester&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT xmlelement(&amp;quot;Name&amp;quot;,first_name), xmlelement(&amp;quot;ID&amp;quot;,id),&lt;br /&gt;
  2    xmlelement(&amp;quot;City&amp;quot;, city)&lt;br /&gt;
  3  FROM employee;&lt;br /&gt;
XMLELEMENT(&amp;quot;NAME&amp;quot;,FIRST_NAME)        XMLELEMENT(&amp;quot;ID&amp;quot;,ID)             XMLELEMENT(&amp;quot;CITY&amp;quot;,CITY)&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;Name&amp;gt;Jason&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;01&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Toronto&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;Alison&amp;lt;/Name&amp;gt;                  &amp;lt;ID&amp;gt;02&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Vancouver&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;James&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;03&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Vancouver&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;Celia&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;04&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Vancouver&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;Robert&amp;lt;/Name&amp;gt;                  &amp;lt;ID&amp;gt;05&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Vancouver&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;Linda&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;06&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;New York&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;David&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;07&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;New York&amp;lt;/City&amp;gt;&lt;br /&gt;
&amp;lt;Name&amp;gt;James&amp;lt;/Name&amp;gt;                   &amp;lt;ID&amp;gt;08&amp;lt;/ID&amp;gt;                     &amp;lt;City&amp;gt;Vancouver&amp;lt;/City&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;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;
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;&amp;lt;/source&amp;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;
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;&amp;lt;/source&amp;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;
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.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== xmlagg and xmlforest==&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;
SQL&amp;gt; CREATE TABLE products(&lt;br /&gt;
  2    product_id              NUMBER(6),&lt;br /&gt;
  3    name            VARCHAR2(50),&lt;br /&gt;
  4    category        VARCHAR2(50),&lt;br /&gt;
  5    price      NUMBER(8,2),&lt;br /&gt;
  6    min_price       NUMBER(8,2)&lt;br /&gt;
  7  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; select xmlelement( &amp;quot;Prodcategory&amp;quot;,&lt;br /&gt;
  2            xmlattributes(p.category as &amp;quot;Category&amp;quot;),&lt;br /&gt;
  3            xmlagg(xmlelement(&amp;quot;Product&amp;quot;,&lt;br /&gt;
  4            xmlforest(p.name as &amp;quot;Name&amp;quot;))))&lt;br /&gt;
  5  from products p&lt;br /&gt;
  6  group by p.category;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table products;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>