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

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/Varray_of_Number&amp;diff=2935&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/Varray_of_Number&amp;diff=2935&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/Varray_of_Number&amp;diff=2936&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/Varray_of_Number&amp;diff=2936&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:28Z</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;== Accessing 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; declare&lt;br /&gt;
  2    Type numberVarray is VARRAY(5)OF NUMBER;&lt;br /&gt;
  3    v_numvarray numberVarray;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5    v_numvarray :=numberVarray(10,20,30,40);&lt;br /&gt;
  6&lt;br /&gt;
  7&lt;br /&gt;
  8    dbms_output.put_line(to_char(v_numvarray(1))||&amp;quot;, &amp;quot;||to_char(v_numvarray(2))||&amp;quot;, &amp;quot;||to_char(v_numvarray(3))||&amp;quot;, &amp;quot;||to_char(v_numvarray(4)));&lt;br /&gt;
  9&lt;br /&gt;
 10    v_numvarray(4):=60;&lt;br /&gt;
 11&lt;br /&gt;
 12    dbms_output.put_line(to_char(v_numvarray(1))||&amp;quot;, &amp;quot;||to_char(v_numvarray(2))||&amp;quot;, &amp;quot;||to_char(v_numvarray(3))||&amp;quot;, &amp;quot;||to_char(v_numvarray(4)));&lt;br /&gt;
 13  end;&lt;br /&gt;
 14  /&lt;br /&gt;
10, 20, 30, 40&lt;br /&gt;
10, 20, 30, 60&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Defining a 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; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    TYPE numberVarray IS VARRAY(5)OF NUMBER;&lt;br /&gt;
  4&lt;br /&gt;
  5    v_numvarray numberVarray;&lt;br /&gt;
  6&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9    /*Do some processing */&lt;br /&gt;
 10&lt;br /&gt;
 11    null;&lt;br /&gt;
 12&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Initializing a 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; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    TYPE numberVarray IS VARRAY(5)OF NUMBER;&lt;br /&gt;
  4&lt;br /&gt;
  5    v_numvarray numberVarray :=numberVarray(10,20,30,40);&lt;br /&gt;
  6&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8&lt;br /&gt;
  9    dbms_output.put_line(&amp;quot;The first element of v_numvarray is &amp;quot;|| TO_CHAR(v_numvarray(1)));&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
The first element of v_numvarray is 10&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
== Is a varray null 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; declare&lt;br /&gt;
  2    Type numberVarray is VARRAY(5)OF NUMBER;&lt;br /&gt;
  3&lt;br /&gt;
  4    v_numvarray1 numberVarray;&lt;br /&gt;
  5&lt;br /&gt;
  6  begin&lt;br /&gt;
  7&lt;br /&gt;
  8    if v_numvarray1 IS NULL then&lt;br /&gt;
  9&lt;br /&gt;
 10      dbms_output.put_line(&amp;quot;v_numvarray1 is null&amp;quot;);&lt;br /&gt;
 11&lt;br /&gt;
 12    end if;&lt;br /&gt;
 13&lt;br /&gt;
 14    if v_numvarray1(1) IS NULL then&lt;br /&gt;
 15&lt;br /&gt;
 16      dbms_output.put_line(&amp;quot;The first element of v_numvarray1 is null&amp;quot;);&lt;br /&gt;
 17&lt;br /&gt;
 18    end if;&lt;br /&gt;
 19&lt;br /&gt;
 20  end;&lt;br /&gt;
 21  /&lt;br /&gt;
v_numvarray1 is null&lt;br /&gt;
declare&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-06531: Reference to uninitialized collection&lt;br /&gt;
ORA-06512: at line 14&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Multilevel Collections==&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 varray_one IS VARRAY(10)OF NUMBER;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE varray_one_nested IS VARRAY(10)OF varray_one;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE varray_two_nested IS VARRAY(10)OF varray_one_nested;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    v1 varray_one;&lt;br /&gt;
  3    v2 varray_one_nested;&lt;br /&gt;
  4    v3 varray_two_nested;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    v1 :=varray_one(1,2,3);&lt;br /&gt;
  7&lt;br /&gt;
  8    v2 :=varray_one_nested(varray_one(11,12,13),varray_one(21,22,23));&lt;br /&gt;
  9&lt;br /&gt;
 10    v3 :=varray_two_nested(&lt;br /&gt;
 11      varray_one_nested(varray_one(111,112,113),varray_one(121,122,123)),&lt;br /&gt;
 12      varray_one_nested(varray_one(211,212,213),varray_one(221,222,223)));&lt;br /&gt;
 13&lt;br /&gt;
 14    for i in 1..v1.count loop&lt;br /&gt;
 15&lt;br /&gt;
 16      dbms_output.put_line(v1(i));&lt;br /&gt;
 17&lt;br /&gt;
 18    end loop;&lt;br /&gt;
 19&lt;br /&gt;
 20    for i in 1..v2.count loop&lt;br /&gt;
 21&lt;br /&gt;
 22      for j in 1..v2(i).count loop&lt;br /&gt;
 23&lt;br /&gt;
 24        dbms_output.put_line(v2(i)(j));&lt;br /&gt;
 25&lt;br /&gt;
 26      end loop;&lt;br /&gt;
 27&lt;br /&gt;
 28    end loop;&lt;br /&gt;
 29&lt;br /&gt;
 30    for i in 1..v3.count loop&lt;br /&gt;
 31&lt;br /&gt;
 32      for j in 1..v3(i).count loop&lt;br /&gt;
 33&lt;br /&gt;
 34        for k in 1..v3(i)(j).count loop&lt;br /&gt;
 35&lt;br /&gt;
 36          dbms_output.put_line(v3(i)(j)(k));&lt;br /&gt;
 37&lt;br /&gt;
 38        end loop;&lt;br /&gt;
 39&lt;br /&gt;
 40      end loop;&lt;br /&gt;
 41&lt;br /&gt;
 42    end loop;&lt;br /&gt;
 43&lt;br /&gt;
 44  END;&lt;br /&gt;
 45  /&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
21&lt;br /&gt;
22&lt;br /&gt;
23&lt;br /&gt;
111&lt;br /&gt;
112&lt;br /&gt;
113&lt;br /&gt;
121&lt;br /&gt;
122&lt;br /&gt;
123&lt;br /&gt;
211&lt;br /&gt;
212&lt;br /&gt;
213&lt;br /&gt;
221&lt;br /&gt;
222&lt;br /&gt;
223&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; drop type varray_one force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type varray_one_nested force;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop type varray_two_nested 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;
== NULL VARRAYS and NULL 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; declare&lt;br /&gt;
  2    Type numberVarray is VARRAY(5)OF NUMBER;&lt;br /&gt;
  3    v_numvarray numberVarray;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5&lt;br /&gt;
  6    if v_numvarray IS NULL then&lt;br /&gt;
  7      dbms_output.put_line(&amp;quot;v_numvarray is null&amp;quot;);&lt;br /&gt;
  8    end if;&lt;br /&gt;
  9&lt;br /&gt;
 10    v_numvarray :=NULL;&lt;br /&gt;
 11&lt;br /&gt;
 12    if v_numvarray IS NULL then&lt;br /&gt;
 13      dbms_output.put_line(&amp;quot;v_numvarray is null after assignment&amp;quot;);&lt;br /&gt;
 14    end if;&lt;br /&gt;
 15  end;&lt;br /&gt;
 16  /&lt;br /&gt;
v_numvarray is null&lt;br /&gt;
v_numvarray is null after assignment&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Pass NULL value to 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; declare&lt;br /&gt;
  2    Type numberVarray is VARRAY(5)OF NUMBER;&lt;br /&gt;
  3    v_numvarray2 numberVarray;&lt;br /&gt;
  4  begin&lt;br /&gt;
  5    v_numvarray2 :=numberVarray(NULL);&lt;br /&gt;
  6&lt;br /&gt;
  7    if v_numvarray2 IS NULL then&lt;br /&gt;
  8&lt;br /&gt;
  9      dbms_output.put_line(&amp;quot;v_numvarray2 is null&amp;quot;);&lt;br /&gt;
 10&lt;br /&gt;
 11    else&lt;br /&gt;
 12&lt;br /&gt;
 13      dbms_output.put_line(&amp;quot;v_numvarray2 is not null&amp;quot;);&lt;br /&gt;
 14&lt;br /&gt;
 15    end if;&lt;br /&gt;
 16&lt;br /&gt;
 17    if v_numvarray2(1) IS NULL then&lt;br /&gt;
 18&lt;br /&gt;
 19      dbms_output.put_line(&amp;quot;The first element of v_numvarray2 is null&amp;quot;);&lt;br /&gt;
 20&lt;br /&gt;
 21    end if;&lt;br /&gt;
 22  end;&lt;br /&gt;
 23  /&lt;br /&gt;
v_numvarray2 is not null&lt;br /&gt;
The first element of v_numvarray2 is null&lt;br /&gt;
PL/SQL procedure successfully completed.&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>