<?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_Tutorial%2FCollections%2FNested_Tables</id>
		<title>Oracle PL/SQL Tutorial/Collections/Nested Tables - История изменений</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_Tutorial%2FCollections%2FNested_Tables"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/Nested_Tables&amp;action=history"/>
		<updated>2026-05-24T08:03:44Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/Nested_Tables&amp;diff=2915&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_Tutorial/Collections/Nested_Tables&amp;diff=2915&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://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/Nested_Tables&amp;diff=2916&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_Tutorial/Collections/Nested_Tables&amp;diff=2916&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:21Z</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;== ANSI Support for Nested Tables==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Equal and Not-Equal Operators&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You use the equal (=) and not-equal (&amp;lt;&amp;gt;) operators to compare nested tables.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Two nested tables are considered equal when they satisfy all the following conditions:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All the tables are the same type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All the tables are the same cardinality-that is, they contain the same number of elements.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;All the elements are equal.&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;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE equal_example AS&lt;br /&gt;
  2    TYPE nestedTableType IS TABLE OF VARCHAR2(10);&lt;br /&gt;
  3    myTable1 nestedTableType;&lt;br /&gt;
  4    myTable2 nestedTableType;&lt;br /&gt;
  5    myTable3 nestedTableType;&lt;br /&gt;
  6    result BOOLEAN;&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    myTable1 := nestedTableType(&amp;quot;A&amp;quot;, &amp;quot;F&amp;quot;, &amp;quot;G&amp;quot;);&lt;br /&gt;
  9    myTable2 := nestedTableType(&amp;quot;B&amp;quot;, &amp;quot;E&amp;quot;, &amp;quot;H&amp;quot;);&lt;br /&gt;
 10    myTable3 := nestedTableType(&amp;quot;C&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;I&amp;quot;);&lt;br /&gt;
 11&lt;br /&gt;
 12    result := myTable1 = myTable2;&lt;br /&gt;
 13    IF result THEN&lt;br /&gt;
 14      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 equal to myTable2&amp;quot; );&lt;br /&gt;
 15    END IF;&lt;br /&gt;
 16&lt;br /&gt;
 17    result := myTable1 &amp;lt;&amp;gt; myTable3;&lt;br /&gt;
 18    IF result THEN&lt;br /&gt;
 19      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 not equal to myTable3&amp;quot;);&lt;br /&gt;
 20    END IF;&lt;br /&gt;
 21  END equal_example;&lt;br /&gt;
 22  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CALL equal_example();&lt;br /&gt;
myTable1 not equal to myTable3&lt;br /&gt;
Call completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== cardinality==&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;&lt;br /&gt;
SQL&amp;gt; create table courses&lt;br /&gt;
  2  ( code        VARCHAR2(6)&lt;br /&gt;
  3  , description VARCHAR2(30)&lt;br /&gt;
  4  , category    CHAR(3)&lt;br /&gt;
  5  , duration    NUMBER(2)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;SQL&amp;quot;,&amp;quot;SQL course&amp;quot;,    &amp;quot;GEN&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;OAU&amp;quot;,&amp;quot;Oracle course&amp;quot;, &amp;quot;GEN&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;JAV&amp;quot;,&amp;quot;Java course&amp;quot;,   &amp;quot;BLD&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PLS&amp;quot;,&amp;quot;PL/SQL course&amp;quot;, &amp;quot;BLD&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;XML&amp;quot;,&amp;quot;XML course&amp;quot;,    &amp;quot;BLD&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;ERM&amp;quot;,&amp;quot;ERM course&amp;quot;,    &amp;quot;DSG&amp;quot;,3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PMT&amp;quot;,&amp;quot;UML course&amp;quot;,    &amp;quot;DSG&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;RSD&amp;quot;,&amp;quot;C# course&amp;quot;,     &amp;quot;DSG&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PRO&amp;quot;,&amp;quot;C++ course&amp;quot;,    &amp;quot;DSG&amp;quot;,5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;GEN&amp;quot;,&amp;quot;GWT course&amp;quot;,    &amp;quot;DSG&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberType as object&lt;br /&gt;
  2  ( code varchar2(4)&lt;br /&gt;
  3  , ch   number(2)&lt;br /&gt;
  4  , pg   number(3)&lt;br /&gt;
  5  , txt  varchar2(40)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberTableCollection as table of errorNumberType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table c as select * from courses;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table c&lt;br /&gt;
  2  add (errata errorNumberTableCollection)&lt;br /&gt;
  3  nested table errata store as errata_tab;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c&lt;br /&gt;
  2  set    errata = errorNumberTableCollection();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into table ( select errata from c where code = &amp;quot;SQL&amp;quot; )&lt;br /&gt;
  2  values ( &amp;quot;SQL&amp;quot;, 3, 45, &amp;quot;line.&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select code, cardinality(errata)&lt;br /&gt;
  2  from   c&lt;br /&gt;
  3  where  errata is not empty;&lt;br /&gt;
CODE   CARDINALITY(ERRATA)&lt;br /&gt;
------ -------------------&lt;br /&gt;
SQL                      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;&lt;br /&gt;
SQL&amp;gt; drop table courses;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table c;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberTableCollection force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberType    force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a Nested Table Type==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You create a nested table type using the CREATE TYPE statement:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you don&amp;quot;t specify the maximum size of a nested table, you can insert any number of elements in a nested table.&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 Or Replace TYPE AddressType AS OBJECT (&lt;br /&gt;
  2    street VARCHAR2(15),&lt;br /&gt;
  3    city   VARCHAR2(15),&lt;br /&gt;
  4    state  CHAR(2),&lt;br /&gt;
  5    zip    VARCHAR2(5)&lt;br /&gt;
  6  );&lt;br /&gt;
  7  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE nested_table_AddressType AS TABLE OF AddressType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Deleting internal elements from a collection==&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;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      type month_nt is table of VARCHAR2(20);&lt;br /&gt;
  3      v_month_nt month_nt:=month_nt();&lt;br /&gt;
  4      i number;&lt;br /&gt;
  5  begin&lt;br /&gt;
  6      v_month_nt.extend(3);&lt;br /&gt;
  7      v_month_nt(1):=&amp;quot;A&amp;quot;;&lt;br /&gt;
  8      v_month_nt(2):=&amp;quot;B&amp;quot;;&lt;br /&gt;
  9      v_month_nt(3):=&amp;quot;C&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      v_month_nt.delete(2);&lt;br /&gt;
 12      DBMS_OUTPUT.put_line(&amp;quot;Count:&amp;quot;||v_month_nt.count);&lt;br /&gt;
 13      DBMS_OUTPUT.put_line(&amp;quot;Last:&amp;quot;||v_month_nt.last);&lt;br /&gt;
 14&lt;br /&gt;
 15      i:=v_month_nt.first;&lt;br /&gt;
 16      loop&lt;br /&gt;
 17          DBMS_OUTPUT.put_line(v_month_nt(i));&lt;br /&gt;
 18          i:=v_month_nt.next(i);&lt;br /&gt;
 19          if i is null&lt;br /&gt;
 20          then&lt;br /&gt;
 21              exit;&lt;br /&gt;
 22          end if;&lt;br /&gt;
 23      end loop;&lt;br /&gt;
 24  end;&lt;br /&gt;
 25  /&lt;br /&gt;
Count:2&lt;br /&gt;
Last:3&lt;br /&gt;
A&lt;br /&gt;
C&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Insert value into table with nested type colunm==&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table courses&lt;br /&gt;
  2  ( code        VARCHAR2(6)&lt;br /&gt;
  3  , description VARCHAR2(30)&lt;br /&gt;
  4  , category    CHAR(3)&lt;br /&gt;
  5  , duration    NUMBER(2)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;SQL&amp;quot;,&amp;quot;SQL course&amp;quot;,    &amp;quot;GEN&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;OAU&amp;quot;,&amp;quot;Oracle course&amp;quot;, &amp;quot;GEN&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;JAV&amp;quot;,&amp;quot;Java course&amp;quot;,   &amp;quot;BLD&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PLS&amp;quot;,&amp;quot;PL/SQL course&amp;quot;, &amp;quot;BLD&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;XML&amp;quot;,&amp;quot;XML course&amp;quot;,    &amp;quot;BLD&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;ERM&amp;quot;,&amp;quot;ERM course&amp;quot;,    &amp;quot;DSG&amp;quot;,3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PMT&amp;quot;,&amp;quot;UML course&amp;quot;,    &amp;quot;DSG&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;RSD&amp;quot;,&amp;quot;C# course&amp;quot;,     &amp;quot;DSG&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PRO&amp;quot;,&amp;quot;C++ course&amp;quot;,    &amp;quot;DSG&amp;quot;,5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;GEN&amp;quot;,&amp;quot;GWT course&amp;quot;,    &amp;quot;DSG&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberType as object&lt;br /&gt;
  2  ( code varchar2(4)&lt;br /&gt;
  3  , ch   number(2)&lt;br /&gt;
  4  , pg   number(3)&lt;br /&gt;
  5  , txt  varchar2(40)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberTableCollection as table of errorNumberType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table c as select * from courses;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table c&lt;br /&gt;
  2  add (errata errorNumberTableCollection)&lt;br /&gt;
  3  nested table errata store as errata_tab;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c&lt;br /&gt;
  2  set    errata = errorNumberTableCollection();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into table ( select errata from c where  code = &amp;quot;SQL&amp;quot; )&lt;br /&gt;
  2  values ( &amp;quot;SQL&amp;quot; , 3 , 45 , &amp;quot;Typo in last line.&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table courses;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table c;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberTableCollection force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberType    force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Nested Tables==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A nested table is an unordered set of any number of elements, all of the same data type.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A nested table has a single column.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The type of that column may be a built-in database type or an object type.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;If the column in a nested table is an object type, the table can also be viewed as a multicolumn table, with a column for each attribute of the object type.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;You can insert, update, and delete individual elements in a nested table.&amp;lt;/LI&amp;gt;&amp;lt;/OL&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;
declare&lt;br /&gt;
  type &amp;lt;NestedTable&amp;gt; is table of &amp;lt;ElementType&amp;gt;;&lt;br /&gt;
...&lt;br /&gt;
create or replace type &amp;lt;NestedTable&amp;gt; is table of &amp;lt;ElementType&amp;gt;;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Nested type 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table courses&lt;br /&gt;
  2  ( code        VARCHAR2(6)&lt;br /&gt;
  3  , description VARCHAR2(30)&lt;br /&gt;
  4  , category    CHAR(3)&lt;br /&gt;
  5  , duration    NUMBER(2)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;SQL&amp;quot;,&amp;quot;SQL course&amp;quot;,    &amp;quot;GEN&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;OAU&amp;quot;,&amp;quot;Oracle course&amp;quot;, &amp;quot;GEN&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;JAV&amp;quot;,&amp;quot;Java course&amp;quot;,   &amp;quot;BLD&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PLS&amp;quot;,&amp;quot;PL/SQL course&amp;quot;, &amp;quot;BLD&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;XML&amp;quot;,&amp;quot;XML course&amp;quot;,    &amp;quot;BLD&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;ERM&amp;quot;,&amp;quot;ERM course&amp;quot;,    &amp;quot;DSG&amp;quot;,3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PMT&amp;quot;,&amp;quot;UML course&amp;quot;,    &amp;quot;DSG&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;RSD&amp;quot;,&amp;quot;C# course&amp;quot;,     &amp;quot;DSG&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PRO&amp;quot;,&amp;quot;C++ course&amp;quot;,    &amp;quot;DSG&amp;quot;,5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;GEN&amp;quot;,&amp;quot;GWT course&amp;quot;,    &amp;quot;DSG&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberType as object&lt;br /&gt;
  2  ( code varchar2(4)&lt;br /&gt;
  3  , ch   number(2)&lt;br /&gt;
  4  , pg   number(3)&lt;br /&gt;
  5  , txt  varchar2(40)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberTableCollection as table of errorNumberType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table c as select * from courses;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table c&lt;br /&gt;
  2  add (errata errorNumberTableCollection)&lt;br /&gt;
  3  nested table errata store as errata_tab;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c set errata = errorNumberTableCollection();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table courses;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table c;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberTableCollection force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberType    force;&lt;br /&gt;
Type 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;
== Table with subquery==&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table courses&lt;br /&gt;
  2  ( code        VARCHAR2(6)&lt;br /&gt;
  3  , description VARCHAR2(30)&lt;br /&gt;
  4  , category    CHAR(3)&lt;br /&gt;
  5  , duration    NUMBER(2)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;SQL&amp;quot;,&amp;quot;SQL course&amp;quot;,    &amp;quot;GEN&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;OAU&amp;quot;,&amp;quot;Oracle course&amp;quot;, &amp;quot;GEN&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;JAV&amp;quot;,&amp;quot;Java course&amp;quot;,   &amp;quot;BLD&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PLS&amp;quot;,&amp;quot;PL/SQL course&amp;quot;, &amp;quot;BLD&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;XML&amp;quot;,&amp;quot;XML course&amp;quot;,    &amp;quot;BLD&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;ERM&amp;quot;,&amp;quot;ERM course&amp;quot;,    &amp;quot;DSG&amp;quot;,3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PMT&amp;quot;,&amp;quot;UML course&amp;quot;,    &amp;quot;DSG&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;RSD&amp;quot;,&amp;quot;C# course&amp;quot;,     &amp;quot;DSG&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PRO&amp;quot;,&amp;quot;C++ course&amp;quot;,    &amp;quot;DSG&amp;quot;,5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;GEN&amp;quot;,&amp;quot;GWT course&amp;quot;,    &amp;quot;DSG&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberType as object&lt;br /&gt;
  2  ( code varchar2(4)&lt;br /&gt;
  3  , ch   number(2)&lt;br /&gt;
  4  , pg   number(3)&lt;br /&gt;
  5  , txt  varchar2(40)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberTableCollection as table of errorNumberType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table c as select * from courses;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table c&lt;br /&gt;
  2  add (errata errorNumberTableCollection)&lt;br /&gt;
  3  nested table errata store as errata_tab;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c set errata = errorNumberTableCollection();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into table ( select errata from c where  code = &amp;quot;SQL&amp;quot; )&lt;br /&gt;
  2  values ( &amp;quot;SQL&amp;quot;, 3, 45, &amp;quot;line&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set linesize 70&lt;br /&gt;
SQL&amp;gt; break on row page&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update table ( select errata from c where  code = &amp;quot;SQL&amp;quot;) e&lt;br /&gt;
  2  set    e.ch  = 7;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; clear breaks&lt;br /&gt;
breaks cleared&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table courses;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table c;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberTableCollection force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberType    force;&lt;br /&gt;
Type dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Type alias for user-defined type in select statement==&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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table courses&lt;br /&gt;
  2  ( code        VARCHAR2(6)&lt;br /&gt;
  3  , description VARCHAR2(30)&lt;br /&gt;
  4  , category    CHAR(3)&lt;br /&gt;
  5  , duration    NUMBER(2)) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;SQL&amp;quot;,&amp;quot;SQL course&amp;quot;,    &amp;quot;GEN&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;OAU&amp;quot;,&amp;quot;Oracle course&amp;quot;, &amp;quot;GEN&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;JAV&amp;quot;,&amp;quot;Java course&amp;quot;,   &amp;quot;BLD&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PLS&amp;quot;,&amp;quot;PL/SQL course&amp;quot;, &amp;quot;BLD&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;XML&amp;quot;,&amp;quot;XML course&amp;quot;,    &amp;quot;BLD&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;ERM&amp;quot;,&amp;quot;ERM course&amp;quot;,    &amp;quot;DSG&amp;quot;,3);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PMT&amp;quot;,&amp;quot;UML course&amp;quot;,    &amp;quot;DSG&amp;quot;,1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;RSD&amp;quot;,&amp;quot;C# course&amp;quot;,     &amp;quot;DSG&amp;quot;,2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;PRO&amp;quot;,&amp;quot;C++ course&amp;quot;,    &amp;quot;DSG&amp;quot;,5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into courses values(&amp;quot;GEN&amp;quot;,&amp;quot;GWT course&amp;quot;,    &amp;quot;DSG&amp;quot;,4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberType as object&lt;br /&gt;
  2  ( code varchar2(4)&lt;br /&gt;
  3  , ch   number(2)&lt;br /&gt;
  4  , pg   number(3)&lt;br /&gt;
  5  , txt  varchar2(40)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
  7  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create type errorNumberTableCollection as table of errorNumberType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table c as select * from courses;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table c&lt;br /&gt;
  2  add (errata errorNumberTableCollection)&lt;br /&gt;
  3  nested table errata store as errata_tab;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c set errata = errorNumberTableCollection();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into table ( select errata from c where  code = &amp;quot;SQL&amp;quot; )&lt;br /&gt;
  2  values ( &amp;quot;SQL&amp;quot;, 3, 45, &amp;quot;line&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set linesize 70&lt;br /&gt;
SQL&amp;gt; break on row page&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set numwidth 3&lt;br /&gt;
SQL&amp;gt; col code format a7&lt;br /&gt;
SQL&amp;gt; col ch fold_before&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select code,c.description, e.ch, e.pg, e.txt&lt;br /&gt;
  2  from   c&lt;br /&gt;
  3         join&lt;br /&gt;
  4         table(c.errata) e&lt;br /&gt;
  5         using (code);&lt;br /&gt;
CODE    DESCRIPTION&lt;br /&gt;
------- ------------------------------&lt;br /&gt;
    CH     PG TXT&lt;br /&gt;
------ ------ ----------------------------------------&lt;br /&gt;
SQL     SQL course&lt;br /&gt;
     3     45 line&lt;br /&gt;
&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; clear breaks&lt;br /&gt;
breaks cleared&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table courses;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type errorNumberTableCollection force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt; drop type errorNumberType    force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>