<?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%2FCollections%2FVARRAY_Column</id>
		<title>Oracle PL/SQL Tutorial/Collections/VARRAY Column - История изменений</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%2FCollections%2FVARRAY_Column"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/VARRAY_Column&amp;action=history"/>
		<updated>2026-04-04T11:47:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/VARRAY_Column&amp;diff=2953&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/Collections/VARRAY_Column&amp;diff=2953&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/Collections/VARRAY_Column&amp;diff=2954&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/Collections/VARRAY_Column&amp;diff=2954&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:31Z</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;== Define function to get the first value in varray==&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; column numlist format a60&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employees(&lt;br /&gt;
  2    empno      NUMBER(4)&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , msal       NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     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 employees values(1,&amp;quot;Jason&amp;quot;,  &amp;quot;N&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 2,   date &amp;quot;1965-12-18&amp;quot;,  800 , NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(2,&amp;quot;Jerry&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,3,   date &amp;quot;1966-11-19&amp;quot;,  1600, 300,   10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(3,&amp;quot;Jord&amp;quot;,   &amp;quot;T&amp;quot; , &amp;quot;SALESREP&amp;quot;,4,   date &amp;quot;1967-10-21&amp;quot;,  1700, 500,   20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(4,&amp;quot;Mary&amp;quot;,   &amp;quot;J&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 5,   date &amp;quot;1968-09-22&amp;quot;,  1800, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(5,&amp;quot;Joe&amp;quot;,    &amp;quot;P&amp;quot;,  &amp;quot;SALESREP&amp;quot;,6,   date &amp;quot;1969-08-23&amp;quot;,  1900, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(6,&amp;quot;Black&amp;quot;,  &amp;quot;R&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 7,   date &amp;quot;1970-07-24&amp;quot;,  2000, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(7,&amp;quot;Red&amp;quot;,    &amp;quot;A&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 8,   date &amp;quot;1971-06-25&amp;quot;,  2100, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(8,&amp;quot;White&amp;quot;,  &amp;quot;S&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 9,   date &amp;quot;1972-05-26&amp;quot;,  2200, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(9,&amp;quot;Yellow&amp;quot;, &amp;quot;C&amp;quot;,  &amp;quot;DIRECTOR&amp;quot;,10,  date &amp;quot;1973-04-27&amp;quot;,  2300, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(10,&amp;quot;Pink&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,null,date &amp;quot;1974-03-28&amp;quot;,  2400, 0,     30);&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; create table e as select empno, ename, init, mgr, deptno from employees;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type numberVarray as varray(4) of varchar2(20);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table e add (numlist numberVarray);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; describe e;&lt;br /&gt;
 Name                                      Null?    Type&lt;br /&gt;
 ----------------------------------------- -------- ----------------------------&lt;br /&gt;
 EMPNO                                              NUMBER(4)&lt;br /&gt;
 ENAME                                              VARCHAR2(8)&lt;br /&gt;
 INIT                                               VARCHAR2(5)&lt;br /&gt;
 MGR                                                NUMBER(4)&lt;br /&gt;
 DEPTNO                                             NUMBER(2)&lt;br /&gt;
 NUMLIST                                            NUMBERVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update e set numlist = numberVarray(&amp;quot;4231&amp;quot;,&amp;quot;06-12345678&amp;quot;);&lt;br /&gt;
10 rows updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace function ext(p_varray_in numberVarray)&lt;br /&gt;
  2  return varchar2&lt;br /&gt;
  3  is&lt;br /&gt;
  4    v_ext varchar2(20);&lt;br /&gt;
  5  begin&lt;br /&gt;
  6    v_ext := p_varray_in(1);&lt;br /&gt;
  7    return v_ext;&lt;br /&gt;
  8  end;&lt;br /&gt;
  9  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; col ext(numlist) format a12&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select ename, init, ext(numlist) from   e;&lt;br /&gt;
     last_name       INIT  EXT(NUMLIST)&lt;br /&gt;
-------------------- ----- ------------&lt;br /&gt;
Jason                N     4231&lt;br /&gt;
Jerry                J     4231&lt;br /&gt;
Jord                 T     4231&lt;br /&gt;
Mary                 J     4231&lt;br /&gt;
Joe                  P     4231&lt;br /&gt;
Black                R     4231&lt;br /&gt;
Red                  A     4231&lt;br /&gt;
White                S     4231&lt;br /&gt;
Yellow               C     4231&lt;br /&gt;
Pink                 J     4231&lt;br /&gt;
10 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table e;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DELETE on varray 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; CREATE OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DELETE FROM address_list&lt;br /&gt;
  2  WHERE list_id =&amp;quot;OFF102&amp;quot;;&lt;br /&gt;
0 rows deleted.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Display the structure of a table with a valarray 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; CREATE Or Replace TYPE addressVarray AS VARRAY(2) OF VARCHAR2(50);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    id         INTEGER PRIMARY KEY,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    addresses  addressVarray&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DESCRIBE employee&lt;br /&gt;
 Name         Null?    Type&lt;br /&gt;
-------------------------------------&lt;br /&gt;
 ID           NOT NULL NUMBER(38)&lt;br /&gt;
 FIRST_NAME            VARCHAR2(10)&lt;br /&gt;
 LAST_NAME             VARCHAR2(10)&lt;br /&gt;
 ADDRESSES             ADDRESSVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== Insert on whole VARRAYS==&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; -- INSERT&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&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 address_list VALUES(&amp;quot;O1&amp;quot;,numberVarryType(1001,1002,1003,1004));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_add_varray numberVarryType :=numberVarryType(2001,2002);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    INSERT INTO address_list VALUES (&amp;quot;OFF102&amp;quot;,v_add_varray);&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&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;
== Modifying Varray Elements==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The elements in a varray can only be modified as a whole.&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 addressVarray AS VARRAY(2) OF VARCHAR2(50);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    id         INTEGER PRIMARY KEY,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    addresses  addressVarray&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DESCRIBE employee;&lt;br /&gt;
 Name          Null?    Type&lt;br /&gt;
 ID            NOT NULL NUMBER(38)&lt;br /&gt;
 FIRST_NAME             VARCHAR2(10)&lt;br /&gt;
 LAST_NAME              VARCHAR2(10)&lt;br /&gt;
 ADDRESSES              ADDRESSVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (&lt;br /&gt;
  2    1, &amp;quot;Steve&amp;quot;, &amp;quot;Brown&amp;quot;,&lt;br /&gt;
  3    addressVarray(&lt;br /&gt;
  4      &amp;quot;AAAAAAAAAAAAAAAA&amp;quot;,&lt;br /&gt;
  5      &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;&lt;br /&gt;
  6    )&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM employee;&lt;br /&gt;
ID FIRST_NAME LAST_NAME        ADDRESSES&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
1 Steve      Brown            ADDRESSVARRAY(&amp;quot;AAAAAAAAAAAAAAAA&amp;quot;, &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE employee&lt;br /&gt;
  2    SET addresses = addressVarray(&lt;br /&gt;
  3      &amp;quot;CCCCCCCCCCCCCCC&amp;quot;,&lt;br /&gt;
  4      &amp;quot;BBBBBBBBBBBBBBB&amp;quot;&lt;br /&gt;
  5    )&lt;br /&gt;
  6  WHERE id = 1;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM employee;&lt;br /&gt;
ID FIRST_NAME LAST_NAME     ADDRESSES&lt;br /&gt;
------------------------------------------------------------------------&lt;br /&gt;
1 Steve      Brown         ADDRESSVARRAY(&amp;quot;CCCCCCCCCCCCCCC&amp;quot;, &amp;quot;BBBBBBBBBBBBBBB&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== Populating a Varray with Elements==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can populate the elements in a varray using an INSERT statement.&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;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE addressVarray AS VARRAY(2) OF VARCHAR2(50);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    id         INTEGER PRIMARY KEY,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    addresses  addressVarray&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DESCRIBE employee;&lt;br /&gt;
 Name            Null?    Type&lt;br /&gt;
 ID              NOT NULL NUMBER(38)&lt;br /&gt;
 FIRST_NAME               VARCHAR2(10)&lt;br /&gt;
 LAST_NAME                VARCHAR2(10)&lt;br /&gt;
 ADDRESSES                ADDRESSVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (&lt;br /&gt;
  2    1, &amp;quot;Steve&amp;quot;, &amp;quot;Brown&amp;quot;,&lt;br /&gt;
  3    addressVarray(&lt;br /&gt;
  4      &amp;quot;AAAAAAAAAAAAAAAA&amp;quot;,&lt;br /&gt;
  5      &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;&lt;br /&gt;
  6    )&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM employee;&lt;br /&gt;
ID FIRST_NAME LAST_NAME           ADDRESSES&lt;br /&gt;
----------------------------------------------------------------------------------------&lt;br /&gt;
1 Steve      Brown                ADDRESSVARRAY(&amp;quot;AAAAAAAAAAAAAAAA&amp;quot;, &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== Selecting Varray Elements==&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; CREATE Or Replace TYPE addressVarray AS VARRAY(2) OF VARCHAR2(50);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    id         INTEGER PRIMARY KEY,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    addresses  addressVarray&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DESCRIBE employee&lt;br /&gt;
 Name           Null?    Type&lt;br /&gt;
 ID             NOT NULL NUMBER(38)&lt;br /&gt;
 FIRST_NAME              VARCHAR2(10)&lt;br /&gt;
 LAST_NAME               VARCHAR2(10)&lt;br /&gt;
 ADDRESSES               ADDRESSVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO employee VALUES (&lt;br /&gt;
  2    1, &amp;quot;Steve&amp;quot;, &amp;quot;Brown&amp;quot;,&lt;br /&gt;
  3    addressVarray(&lt;br /&gt;
  4      &amp;quot;AAAAAAAAAAAAAAAA&amp;quot;,&lt;br /&gt;
  5      &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;&lt;br /&gt;
  6    )&lt;br /&gt;
  7  );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2  FROM employee;&lt;br /&gt;
ID FIRST_NAME LAST_NAME            ADDRESSES&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
1 Steve      Brown                ADDRESSVARRAY(&amp;quot;AAAAAAAAAAAAAAAA&amp;quot;, &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT addresses&lt;br /&gt;
  2  FROM employee;&lt;br /&gt;
ADDRESSES&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
ADDRESSVARRAY(&amp;quot;AAAAAAAAAAAAAAAA&amp;quot;, &amp;quot;BBBBBBBBBBBBBBBB&amp;quot;)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&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;
== SELECT into with varray 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 OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_add_varray address_list.direct_addresses%TYPE;&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    SELECT direct_addresses INTO v_add_varray FROM address_list WHERE list_id =&amp;quot;OFF101&amp;quot;;&lt;br /&gt;
  5&lt;br /&gt;
  6    FOR idx IN 1..v_add_varray.COUNT LOOP&lt;br /&gt;
  7      DBMS_OUTPUT.PUT_LINE(TO_CHAR(v_add_varray(idx)));&lt;br /&gt;
  8    END LOOP;&lt;br /&gt;
  9  EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 10    DBMS_OUTPUT.PUT_LINE(SQLERRM);&lt;br /&gt;
 11  END;&lt;br /&gt;
 12  /&lt;br /&gt;
ORA-01403: no data found&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Set empty varray 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;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; column numlist format a60&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employees(&lt;br /&gt;
  2    empno      NUMBER(4)&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , msal       NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     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 employees values(1,&amp;quot;Jason&amp;quot;,  &amp;quot;N&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 2,   date &amp;quot;1965-12-18&amp;quot;,  800 , NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(2,&amp;quot;Jerry&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,3,   date &amp;quot;1966-11-19&amp;quot;,  1600, 300,   10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(3,&amp;quot;Jord&amp;quot;,   &amp;quot;T&amp;quot; , &amp;quot;SALESREP&amp;quot;,4,   date &amp;quot;1967-10-21&amp;quot;,  1700, 500,   20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(4,&amp;quot;Mary&amp;quot;,   &amp;quot;J&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 5,   date &amp;quot;1968-09-22&amp;quot;,  1800, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(5,&amp;quot;Joe&amp;quot;,    &amp;quot;P&amp;quot;,  &amp;quot;SALESREP&amp;quot;,6,   date &amp;quot;1969-08-23&amp;quot;,  1900, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(6,&amp;quot;Black&amp;quot;,  &amp;quot;R&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 7,   date &amp;quot;1970-07-24&amp;quot;,  2000, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(7,&amp;quot;Red&amp;quot;,    &amp;quot;A&amp;quot;,  &amp;quot;MANAGER&amp;quot;, 8,   date &amp;quot;1971-06-25&amp;quot;,  2100, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(8,&amp;quot;White&amp;quot;,  &amp;quot;S&amp;quot;,  &amp;quot;TRAINER&amp;quot;, 9,   date &amp;quot;1972-05-26&amp;quot;,  2200, NULL,  40);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(9,&amp;quot;Yellow&amp;quot;, &amp;quot;C&amp;quot;,  &amp;quot;DIRECTOR&amp;quot;,10,  date &amp;quot;1973-04-27&amp;quot;,  2300, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into employees values(10,&amp;quot;Pink&amp;quot;,  &amp;quot;J&amp;quot;,  &amp;quot;SALESREP&amp;quot;,null,date &amp;quot;1974-03-28&amp;quot;,  2400, 0,     30);&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; create table e&lt;br /&gt;
  2  as&lt;br /&gt;
  3  select empno, ename, init, mgr, deptno&lt;br /&gt;
  4  from   employees;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace type numberVarray&lt;br /&gt;
  2  as varray(4) of varchar2(20);&lt;br /&gt;
  3  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table e add (numlist numberVarray);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; describe e;&lt;br /&gt;
 Name                                      Null?    Type&lt;br /&gt;
 ----------------------------------------- -------- ----------------------------&lt;br /&gt;
 EMPNO                                              NUMBER(4)&lt;br /&gt;
 ENAME                                              VARCHAR2(8)&lt;br /&gt;
 INIT                                               VARCHAR2(5)&lt;br /&gt;
 MGR                                                NUMBER(4)&lt;br /&gt;
 DEPTNO                                             NUMBER(2)&lt;br /&gt;
 NUMLIST                                            NUMBERVARRAY&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update e&lt;br /&gt;
  2  set    numlist = numberVarray();&lt;br /&gt;
10 rows updated.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table e;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type numberVarray;&lt;br /&gt;
Type dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Stored VARRAYS==&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 OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&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;
== UPDATE on varray 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; CREATE OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UPDATE address_list&lt;br /&gt;
  2  SET direct_addresses =numberVarryType(1011,1012,1013)&lt;br /&gt;
  3  WHERE list_id =&amp;quot;OFF102&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 address_list;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== UPDATE on varray column in PL/SQL block==&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 OR REPLACE TYPE numberVarryType AS VARRAY(10)OF NUMBER(10);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE address_list (&lt;br /&gt;
  2      list_id VARCHAR2(6)PRIMARY KEY,&lt;br /&gt;
  3      direct_addresses numberVarryType&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v_add_varray numberVarryType :=numberVarryType(1011,1012,1013);&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4    UPDATE address_list&lt;br /&gt;
  5    SET direct_addresses =v_add_varray&lt;br /&gt;
  6    WHERE list_id =&amp;quot;OFF102&amp;quot;;&lt;br /&gt;
  7  END;&lt;br /&gt;
  8  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table address_list;&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;
== Using a Varray Type to Define a Column in a 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE Or Replace TYPE addressVarray AS VARRAY(2) OF VARCHAR2(50);&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2    id         INTEGER PRIMARY KEY,&lt;br /&gt;
  3    first_name VARCHAR2(10),&lt;br /&gt;
  4    last_name  VARCHAR2(10),&lt;br /&gt;
  5    addresses  addressVarray&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>