<?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%2FPL_SQL%2FTable_of_Varchar2</id>
		<title>Oracle PL/SQL/PL SQL/Table of Varchar2 - История изменений</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%2FPL_SQL%2FTable_of_Varchar2"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Table_of_Varchar2&amp;action=history"/>
		<updated>2026-05-24T09:24:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL/PL_SQL/Table_of_Varchar2&amp;diff=1959&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/PL_SQL/Table_of_Varchar2&amp;diff=1959&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/PL_SQL/Table_of_Varchar2&amp;diff=1960&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/PL_SQL/Table_of_Varchar2&amp;diff=1960&amp;oldid=prev"/>
				<updated>2010-05-26T09:59:46Z</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;==Allocate space as you increment the index.==&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; DECLARE&lt;br /&gt;
  2    &lt;br /&gt;
  3    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR);&lt;br /&gt;
  4&lt;br /&gt;
  5    &lt;br /&gt;
  6    charArray charArrayType := charArrayType();&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    FOR i IN 1..3 LOOP&lt;br /&gt;
  9      charArray.EXTEND;&lt;br /&gt;
 10      IF    i = 1 THEN&lt;br /&gt;
 11        charArray(i) := &amp;quot;A&amp;quot;;&lt;br /&gt;
 12      ELSIF i = 2 THEN&lt;br /&gt;
 13        charArray(i) := &amp;quot;B&amp;quot;;&lt;br /&gt;
 14      ELSIF i = 3 THEN&lt;br /&gt;
 15        charArray(i) := &amp;quot;C&amp;quot;;&lt;br /&gt;
 16      END IF;&lt;br /&gt;
 17    END LOOP;&lt;br /&gt;
 18&lt;br /&gt;
 19    FOR i IN 1..3 LOOP&lt;br /&gt;
 20      dbms_output.put     (i||&amp;quot;:&amp;quot;);&lt;br /&gt;
 21      dbms_output.put_line(charArray(i));&lt;br /&gt;
 22    END LOOP;&lt;br /&gt;
 23  END;&lt;br /&gt;
 24  /&lt;br /&gt;
1:A&lt;br /&gt;
2:B&lt;br /&gt;
3:C&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==A NULL table, and a table with a NULL element.==&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; DECLARE&lt;br /&gt;
  2    TYPE wordTableType IS TABLE OF VARCHAR2(50);&lt;br /&gt;
  3&lt;br /&gt;
  4    myTable1 wordTableType;&lt;br /&gt;
  5&lt;br /&gt;
  6    myTable2 wordTableType := wordTableType();&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    IF myTable1 IS NULL THEN&lt;br /&gt;
  9      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 is NULL&amp;quot;);&lt;br /&gt;
 10    ELSE&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 is not NULL&amp;quot;);&lt;br /&gt;
 12    END IF;&lt;br /&gt;
 13&lt;br /&gt;
 14    IF myTable2 IS NULL THEN&lt;br /&gt;
 15      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable2 is NULL&amp;quot;);&lt;br /&gt;
 16    ELSE&lt;br /&gt;
 17      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable2 is not NULL&amp;quot;);&lt;br /&gt;
 18    END IF;&lt;br /&gt;
 19  END;&lt;br /&gt;
 20  /&lt;br /&gt;
myTable1 is NULL&lt;br /&gt;
myTable2 is not NULL&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==Assign the character index to a variable.==&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; DECLARE&lt;br /&gt;
  2    current VARCHAR2(9 CHAR);&lt;br /&gt;
  3    element INTEGER;&lt;br /&gt;
  4&lt;br /&gt;
  5    TYPE months_varray IS VARRAY(12) OF STRING(9 CHAR);&lt;br /&gt;
  6    TYPE calendar_table IS TABLE OF VARCHAR2(9 CHAR) INDEX BY VARCHAR2(9 CHAR);&lt;br /&gt;
  7&lt;br /&gt;
  8    month MONTHS_VARRAY := months_varray(&amp;quot;January&amp;quot;,&amp;quot;February&amp;quot;,&amp;quot;March&amp;quot;,&amp;quot;April&amp;quot;,&amp;quot;May&amp;quot;,&amp;quot;June&amp;quot;);&lt;br /&gt;
  9&lt;br /&gt;
 10    calendar CALENDAR_TABLE;&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12    IF calendar.COUNT = 0 THEN&lt;br /&gt;
 13      FOR i IN month.FIRST..month.LAST LOOP&lt;br /&gt;
 14        calendar(month(i)) := TO_CHAR(i);&lt;br /&gt;
 15        DBMS_OUTPUT.PUT_LINE(&amp;quot;Index [&amp;quot;||month(i)||&amp;quot;] is [&amp;quot;||i||&amp;quot;]&amp;quot;);&lt;br /&gt;
 16      END LOOP;&lt;br /&gt;
 17&lt;br /&gt;
 18&lt;br /&gt;
 19    END IF;&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
Index [January] is [1]&lt;br /&gt;
Index [February] is [2]&lt;br /&gt;
Index [March] is [3]&lt;br /&gt;
Index [April] is [4]&lt;br /&gt;
Index [May] is [5]&lt;br /&gt;
Index [June] is [6]&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==Assign the first character index to a variable.==&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; DECLARE&lt;br /&gt;
  2    current VARCHAR2(9 CHAR);&lt;br /&gt;
  3    element INTEGER;&lt;br /&gt;
  4&lt;br /&gt;
  5    TYPE months_varray IS VARRAY(12) OF STRING(9 CHAR);&lt;br /&gt;
  6    TYPE calendar_table IS TABLE OF VARCHAR2(9 CHAR) INDEX BY VARCHAR2(9 CHAR);&lt;br /&gt;
  7&lt;br /&gt;
  8    month MONTHS_VARRAY := months_varray(&amp;quot;January&amp;quot;,&amp;quot;February&amp;quot;,&amp;quot;March&amp;quot;,&amp;quot;April&amp;quot;,&amp;quot;May&amp;quot;,&amp;quot;June&amp;quot;,&amp;quot;July&amp;quot;,&amp;quot;August&amp;quot;,&amp;quot;September&amp;quot;,&amp;quot;October&amp;quot;,&amp;quot;November&amp;quot;,&amp;quot;December&amp;quot;);&lt;br /&gt;
  9&lt;br /&gt;
 10    calendar CALENDAR_TABLE;&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12    IF calendar.COUNT = 0 THEN&lt;br /&gt;
 13      FOR i IN month.FIRST..month.LAST LOOP&lt;br /&gt;
 14        calendar(month(i)) := TO_CHAR(i);&lt;br /&gt;
 15        DBMS_OUTPUT.PUT_LINE(&amp;quot;Index [&amp;quot;||month(i)||&amp;quot;] is [&amp;quot;||i||&amp;quot;]&amp;quot;);&lt;br /&gt;
 16      END LOOP;&lt;br /&gt;
 17&lt;br /&gt;
 18&lt;br /&gt;
 19    END IF;&lt;br /&gt;
 20  END;&lt;br /&gt;
 21  /&lt;br /&gt;
Index [January] is [1]&lt;br /&gt;
Index [February] is [2]&lt;br /&gt;
Index [March] is [3]&lt;br /&gt;
Index [April] is [4]&lt;br /&gt;
Index [May] is [5]&lt;br /&gt;
Index [June] is [6]&lt;br /&gt;
Index [July] is [7]&lt;br /&gt;
Index [August] is [8]&lt;br /&gt;
Index [September] is [9]&lt;br /&gt;
Index [October] is [10]&lt;br /&gt;
Index [November] is [11]&lt;br /&gt;
Index [December] is [12]&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==Assign to three elements of the table.  Note that the key values are not sequential==&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; DECLARE&lt;br /&gt;
  2    TYPE CharacterTab IS TABLE OF VARCHAR2(10)&lt;br /&gt;
  3      INDEX BY BINARY_INTEGER;&lt;br /&gt;
  4    v_Characters CharacterTab;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    v_Characters(0) := &amp;quot;H&amp;quot;;&lt;br /&gt;
  7    v_Characters(-7) := &amp;quot;S&amp;quot;;&lt;br /&gt;
  8    v_Characters(3) := &amp;quot;S&amp;quot;;&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&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;&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;
==Assign values to subscripted members of the nested 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;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR);&lt;br /&gt;
  3    charArray charArrayType := charArrayType(NULL,NULL,NULL);&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5&lt;br /&gt;
  6    charArray(1) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  7    charArray(2) := &amp;quot;B&amp;quot;;&lt;br /&gt;
  8    charArray(3) := &amp;quot;C&amp;quot;;&lt;br /&gt;
  9&lt;br /&gt;
 10    FOR i IN 1..3 LOOP&lt;br /&gt;
 11      dbms_output.put_line(i||&amp;quot;:&amp;quot;||charArray(i));&lt;br /&gt;
 12    END LOOP;&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
1:A&lt;br /&gt;
2:B&lt;br /&gt;
3:C&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Assign value to table record after delete method call==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 13&lt;br /&gt;
 14      myText_table.DELETE;&lt;br /&gt;
 15      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 16&lt;br /&gt;
 17      myText_table(15) := &amp;quot;some text&amp;quot;;&lt;br /&gt;
 18      myText_table(25) := &amp;quot;some more text&amp;quot;;&lt;br /&gt;
 19      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 20    end;&lt;br /&gt;
 21    /&lt;br /&gt;
3&lt;br /&gt;
0&lt;br /&gt;
2&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==Assign value to table records==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12    end;&lt;br /&gt;
 13    /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Assign value to varchar2 collection by index==&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; DECLARE&lt;br /&gt;
  2    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR);&lt;br /&gt;
  3&lt;br /&gt;
  4    charArray charArrayType := charArrayType(NULL,NULL,NULL);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6&lt;br /&gt;
  7    FOR i IN 1..3 LOOP&lt;br /&gt;
  8      dbms_output.put     (&amp;quot;charArray Varray:&amp;quot;||i);&lt;br /&gt;
  9      dbms_output.put_line(&amp;quot;:&amp;quot;||charArray(i));&lt;br /&gt;
 10    END LOOP;&lt;br /&gt;
 11&lt;br /&gt;
 12    charArray(1) := &amp;quot;A&amp;quot;;&lt;br /&gt;
 13    charArray(2) := &amp;quot;B&amp;quot;;&lt;br /&gt;
 14    charArray(3) := &amp;quot;C&amp;quot;;&lt;br /&gt;
 15&lt;br /&gt;
 16    FOR i IN 1..3 LOOP&lt;br /&gt;
 17      dbms_output.put_line(i||&amp;quot;:&amp;quot;||charArray(i));&lt;br /&gt;
 18    END LOOP;&lt;br /&gt;
 19  END;&lt;br /&gt;
 20  /&lt;br /&gt;
charArray Varray:1:&lt;br /&gt;
charArray Varray:2:&lt;br /&gt;
charArray Varray:3:&lt;br /&gt;
1:A&lt;br /&gt;
2:B&lt;br /&gt;
3:C&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Assing an empty table record to non-empty table record==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 13&lt;br /&gt;
 14      myText_table.DELETE;&lt;br /&gt;
 15      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 16&lt;br /&gt;
 17      myText_table(15) := &amp;quot;some text&amp;quot;;&lt;br /&gt;
 18      myText_table(25) := &amp;quot;some more text&amp;quot;;&lt;br /&gt;
 19      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 20&lt;br /&gt;
 21      myText_table := l_empty_table;&lt;br /&gt;
 22      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 23&lt;br /&gt;
 24    end;&lt;br /&gt;
 25    /&lt;br /&gt;
3&lt;br /&gt;
0&lt;br /&gt;
2&lt;br /&gt;
0&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==behavior of NULL nested tables.==&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; DECLARE&lt;br /&gt;
  2    TYPE wordTableType IS TABLE OF VARCHAR2(50);&lt;br /&gt;
  3&lt;br /&gt;
  4   &lt;br /&gt;
  5    myTable1 wordTableType;&lt;br /&gt;
  6&lt;br /&gt;
  7   &lt;br /&gt;
  8    myTable2 wordTableType := wordTableType();&lt;br /&gt;
  9  BEGIN&lt;br /&gt;
 10    IF myTable1 IS NULL THEN&lt;br /&gt;
 11      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 is NULL&amp;quot;);&lt;br /&gt;
 12    ELSE&lt;br /&gt;
 13      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable1 is not NULL&amp;quot;);&lt;br /&gt;
 14    END IF;&lt;br /&gt;
 15&lt;br /&gt;
 16    IF myTable2 IS NULL THEN&lt;br /&gt;
 17      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable2 is NULL&amp;quot;);&lt;br /&gt;
 18    ELSE&lt;br /&gt;
 19      DBMS_OUTPUT.PUT_LINE(&amp;quot;myTable2 is not NULL&amp;quot;);&lt;br /&gt;
 20    END IF;&lt;br /&gt;
 21  END;&lt;br /&gt;
 22  /&lt;br /&gt;
myTable1 is NULL&lt;br /&gt;
myTable2 is not NULL&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==Call delete method on table record==&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; declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 13&lt;br /&gt;
 14      myText_table.DELETE;&lt;br /&gt;
 15      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
3&lt;br /&gt;
0&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Call delete method with number on table record==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 13&lt;br /&gt;
 14      myText_table.DELETE(20);&lt;br /&gt;
 15      dbms_output.put     (myText_table.count);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
3&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Clear the table of varchar2==&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; -- delete Pl/SQL table records&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11&lt;br /&gt;
 12      l_text_table := l_empty_table;&lt;br /&gt;
 13      dbms_output.put  (&amp;quot;Once we assign our populated table to an empty &amp;quot;);&lt;br /&gt;
 14      dbms_output.put_line(&amp;quot;table, we end up with &amp;quot; || l_text_table.count);&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot; varchar2s &amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
Once we assign our populated table to an empty table, we end up with 0&lt;br /&gt;
varchar2s&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==dbms_sql.varchar2_table 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;
     &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      l_names dbms_sql.varchar2_table;&lt;br /&gt;
  3    begin&lt;br /&gt;
  4      l_names(1) := &amp;quot;W&amp;quot;;&lt;br /&gt;
  5      l_names(2) := &amp;quot;J&amp;quot;;&lt;br /&gt;
  6      l_names(3) := &amp;quot;C&amp;quot;;&lt;br /&gt;
  7&lt;br /&gt;
  8      for idx in 1 .. l_names.COUNT loop&lt;br /&gt;
  9        dbms_output.put_line(&amp;quot;Name (&amp;quot; || idx || &amp;quot;) is &amp;quot; || l_names(idx));&lt;br /&gt;
 10      end loop;&lt;br /&gt;
 11    end;&lt;br /&gt;
 12    /&lt;br /&gt;
Name (1) is W&lt;br /&gt;
Name (2) is J&lt;br /&gt;
Name (3) is C&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Declare a nested table with null values.==&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; DECLARE&lt;br /&gt;
  2    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR);&lt;br /&gt;
  3&lt;br /&gt;
  4    charArray charArrayType := charArrayType(NULL,NULL,NULL);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6&lt;br /&gt;
  7    FOR i IN 1..3 LOOP&lt;br /&gt;
  8      dbms_output.put_line(&amp;quot;charArray:&amp;quot;||i||&amp;quot;:&amp;quot;||charArray(i));&lt;br /&gt;
  9    END LOOP;&lt;br /&gt;
 10  END;&lt;br /&gt;
 11  /&lt;br /&gt;
charArray:1:&lt;br /&gt;
charArray:2:&lt;br /&gt;
charArray:3:&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Define &amp;quot;table of varchar2&amp;quot; as data type and insert 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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      l_text_table(15) := &amp;quot;some text&amp;quot;;&lt;br /&gt;
 12      l_text_table(25) := &amp;quot;some more text&amp;quot;;&lt;br /&gt;
 13      dbms_output.put     (&amp;quot;After some assignments, we end up with &amp;quot;);&lt;br /&gt;
 14      dbms_output.put_line(l_text_table.count || &amp;quot; varchar2s &amp;quot;);&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot;-&amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
After some assignments, we end up with 5 varchar2s&lt;br /&gt;
-&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==Delete element in table of varchar2==&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;
&lt;br /&gt;
SQL&amp;gt; -- delete Pl/SQL table records&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      l_text_table.DELETE(20);&lt;br /&gt;
 12      dbms_output.put     (&amp;quot;After using the DELETE operator on the second &amp;quot;);&lt;br /&gt;
 13      dbms_output.put     (&amp;quot;record (ie, DELETE(20), we have &amp;quot;||l_text_table.count);&lt;br /&gt;
 14      dbms_output.put_line(&amp;quot; varchar2s&amp;quot;);&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot;-&amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
After using the DELETE operator on the second record (ie, DELETE(20), we have 2 varchar2s&lt;br /&gt;
-&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==Dynamic initialization and assignment in the execution section.==&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; DECLARE&lt;br /&gt;
  2    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR);&lt;br /&gt;
  3&lt;br /&gt;
  4    charArray charArrayType := charArrayType();&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    FOR i IN 1..3 LOOP&lt;br /&gt;
  7      charArray.EXTEND;&lt;br /&gt;
  8      IF i = 1 THEN&lt;br /&gt;
  9        charArray(i) := &amp;quot;A&amp;quot;;&lt;br /&gt;
 10      ELSIF i = 2 THEN&lt;br /&gt;
 11        charArray(i) := &amp;quot;B&amp;quot;;&lt;br /&gt;
 12      ELSIF i = 3 THEN&lt;br /&gt;
 13        charArray(i) := &amp;quot;C&amp;quot;;&lt;br /&gt;
 14      END IF;&lt;br /&gt;
 15    END LOOP;&lt;br /&gt;
 16&lt;br /&gt;
 17    FOR i IN 1..3 LOOP&lt;br /&gt;
 18      dbms_output.put     (i||&amp;quot;:&amp;quot;);&lt;br /&gt;
 19      dbms_output.put_line(charArray(i));&lt;br /&gt;
 20    END LOOP;&lt;br /&gt;
 21  END;&lt;br /&gt;
 22  /&lt;br /&gt;
1:A&lt;br /&gt;
2:B&lt;br /&gt;
3:C&lt;br /&gt;
PL/SQL procedure successfully completed.&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;
==first last next==&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 EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&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 serverout on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      myIndex       number;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      for emp_rec in (select * from emp) loop&lt;br /&gt;
  9        myText_table(emp_rec.empno) := emp_rec.ename;&lt;br /&gt;
 10      end loop;&lt;br /&gt;
 11&lt;br /&gt;
 12      myIndex := myText_table.first;&lt;br /&gt;
 13      loop&lt;br /&gt;
 14        exit when myIndex is null;&lt;br /&gt;
 15        dbms_output.put_line(myIndex ||&amp;quot;:&amp;quot;|| myText_table(myIndex));&lt;br /&gt;
 16        myIndex := myText_table.next(myIndex);&lt;br /&gt;
 17      end loop;&lt;br /&gt;
 18    end;&lt;br /&gt;
 19    /&lt;br /&gt;
7369:SMITH&lt;br /&gt;
7499:ALLEN&lt;br /&gt;
7521:WARD&lt;br /&gt;
7566:JONES&lt;br /&gt;
7654:MARTIN&lt;br /&gt;
7698:BLAKE&lt;br /&gt;
7782:CLARK&lt;br /&gt;
7788:SCOTT&lt;br /&gt;
7839:KING&lt;br /&gt;
7844:TURNER&lt;br /&gt;
7876:ADAMS&lt;br /&gt;
7900:JAMES&lt;br /&gt;
7902:FORD&lt;br /&gt;
7934:MILLER&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&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;
    &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;
==index by binary integer or by varchar2==&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; declare&lt;br /&gt;
  2   type charListType is table of number index by varchar2(100);&lt;br /&gt;
  3   vc charListType;&lt;br /&gt;
  4   type numberListType is table of number index by binary_integer;&lt;br /&gt;
  5   n numberListType;&lt;br /&gt;
  6   t number;&lt;br /&gt;
  7   begin&lt;br /&gt;
  8       t := dbms_utility.get_time;&lt;br /&gt;
  9       for i in 1 .. 1000 loop&lt;br /&gt;
 10           n(i*1000) := i;&lt;br /&gt;
 11       end loop;&lt;br /&gt;
 12       dbms_output.put_line(&amp;quot;Index by Number : &amp;quot;||(dbms_utility.get_time-t));&lt;br /&gt;
 13       t := dbms_utility.get_time;&lt;br /&gt;
 14       for i in 1 .. 1000 loop&lt;br /&gt;
 15           vc(i*1000) := i;&lt;br /&gt;
 16       end loop;&lt;br /&gt;
 17       dbms_output.put_line(&amp;quot;Index by Varchar2: &amp;quot;||(dbms_utility.get_time-t));&lt;br /&gt;
 18   end;&lt;br /&gt;
 19  /&lt;br /&gt;
Index by Number : 0&lt;br /&gt;
Index by Varchar2: 1&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==Insert elements into table of varchar2==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      l_text_table(15) := &amp;quot;some text&amp;quot;;&lt;br /&gt;
 12      l_text_table(25) := &amp;quot;some more text&amp;quot;;&lt;br /&gt;
 13      dbms_output.put     (&amp;quot;After some assignments, we end up with &amp;quot;);&lt;br /&gt;
 14      dbms_output.put_line(l_text_table.count || &amp;quot; varchar2s &amp;quot;);&lt;br /&gt;
 15      dbms_output.put_line(&amp;quot;-&amp;quot;);&lt;br /&gt;
 16&lt;br /&gt;
 17    end;&lt;br /&gt;
 18    /&lt;br /&gt;
After some assignments, we end up with 5 varchar2s&lt;br /&gt;
-&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==Reference count property of table record==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200)&lt;br /&gt;
  3        index by binary_integer;&lt;br /&gt;
  4&lt;br /&gt;
  5      myText_table     myTextTableType;&lt;br /&gt;
  6      l_empty_table    myTextTableType;&lt;br /&gt;
  7    begin&lt;br /&gt;
  8      myText_table(10) := &amp;quot;A&amp;quot;;&lt;br /&gt;
  9      myText_table(20) := &amp;quot;AA&amp;quot;;&lt;br /&gt;
 10      myText_table(30) := &amp;quot;AAA&amp;quot;;&lt;br /&gt;
 11&lt;br /&gt;
 12      dbms_output.put_line(myText_table.count);&lt;br /&gt;
 13&lt;br /&gt;
 14    end;&lt;br /&gt;
 15    /&lt;br /&gt;
3&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&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;
==Table of varchar2 delete all==&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;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      l_text_table.DELETE;&lt;br /&gt;
 12      dbms_output.put     (&amp;quot;After using the DELETE operator, we have &amp;quot;);&lt;br /&gt;
 13      dbms_output.put_line(l_text_table.count || &amp;quot; varchar2s &amp;quot;);&lt;br /&gt;
 14      dbms_output.put_line(&amp;quot;-&amp;quot;);&lt;br /&gt;
 15&lt;br /&gt;
 16    end;&lt;br /&gt;
 17    /&lt;br /&gt;
After using the DELETE operator, we have 0 varchar2s&lt;br /&gt;
-&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==Table of varchar2 element count==&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;  declare&lt;br /&gt;
  2      type myTextTableType is table of varchar2(200) index by binary_integer;&lt;br /&gt;
  3&lt;br /&gt;
  4      l_text_table     myTextTableType;&lt;br /&gt;
  5      l_empty_table    myTextTableType;&lt;br /&gt;
  6    begin&lt;br /&gt;
  7      l_text_table(10) := &amp;quot;A value&amp;quot;;&lt;br /&gt;
  8      l_text_table(20) := &amp;quot;Another value&amp;quot;;&lt;br /&gt;
  9      l_text_table(30) := &amp;quot;Yet another value&amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11      dbms_output.put_line(&amp;quot;We start with &amp;quot; || l_text_table.count || &amp;quot; varchar2s &amp;quot;);&lt;br /&gt;
 12      dbms_output.put_line(&amp;quot;-&amp;quot;);&lt;br /&gt;
 13&lt;br /&gt;
 14    end;&lt;br /&gt;
 15    /&lt;br /&gt;
We start with 3 varchar2s&lt;br /&gt;
-&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &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;
==Varchar table indexed by BINARY_INTEGER==&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; DECLARE&lt;br /&gt;
  2    TYPE CharacterTab IS TABLE OF VARCHAR2(10)&lt;br /&gt;
  3      INDEX BY BINARY_INTEGER;&lt;br /&gt;
  4    v_Characters CharacterTab;&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6    v_Characters(0) := &amp;quot;H&amp;quot;;&lt;br /&gt;
  7    v_Characters(-7) := &amp;quot;S&amp;quot;;&lt;br /&gt;
  8    v_Characters(3) := &amp;quot;S&amp;quot;;&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&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;
==VARRAYs, nested tables, index-by tables==&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;
-- VARRAYs, nested tables, index-by tables&lt;br /&gt;
DECLARE&lt;br /&gt;
   TYPE name_nested_typ IS TABLE OF VARCHAR2(20);&lt;br /&gt;
   first_name_table name_nested_typ;&lt;br /&gt;
   TYPE             name_index_by_typ IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;&lt;br /&gt;
   last_name_table  name_index_by_typ;&lt;br /&gt;
BEGIN&lt;br /&gt;
   &lt;br /&gt;
   first_name_table := name_nested_typ(&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;); &lt;br /&gt;
   first_name_table.EXTEND;&lt;br /&gt;
   first_name_table(4) := &amp;quot;Ringo&amp;quot;;&lt;br /&gt;
   last_name_table(3) := &amp;quot;Smith&amp;quot;;&lt;br /&gt;
   DBMS_OUTPUT.PUT_LINE(first_name_table(4));&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
           &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;
==You cannot traverse an associative array until elements are initialized.==&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; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON SIZE 1000000&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2&lt;br /&gt;
  3    &lt;br /&gt;
  4    TYPE charArrayType IS TABLE OF VARCHAR2(5 CHAR) INDEX BY BINARY_INTEGER;&lt;br /&gt;
  5&lt;br /&gt;
  6    &lt;br /&gt;
  7    charArray charArrayType;&lt;br /&gt;
  8&lt;br /&gt;
  9  BEGIN&lt;br /&gt;
 10&lt;br /&gt;
 11     &lt;br /&gt;
 12      DBMS_OUTPUT.PUT_LINE(charArray(1));&lt;br /&gt;
 13&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
   &lt;br /&gt;
    &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>