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

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Collections/Table_of_Record&amp;diff=2925&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/Table_of_Record&amp;diff=2925&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/Table_of_Record&amp;diff=2926&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/Table_of_Record&amp;diff=2926&amp;oldid=prev"/>
				<updated>2010-05-26T10:04:25Z</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;== An anonymous PL/SQL procedure to demonstrate the use of PL/SQL 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employee (&lt;br /&gt;
  2  id                             number                         not null,&lt;br /&gt;
  3  employee_type_id               number                         not null,&lt;br /&gt;
  4  external_id                    varchar2(30)                   not null,&lt;br /&gt;
  5  first_name                     varchar2(30)                   not null,&lt;br /&gt;
  6  middle_name                    varchar2(30),&lt;br /&gt;
  7  last_name                      varchar2(30)                   not null,&lt;br /&gt;
  8  name                           varchar2(100)                  not null,&lt;br /&gt;
  9  birth_date                     date                           not null,&lt;br /&gt;
 10  gender_id                      number                         not null );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; declare&lt;br /&gt;
  2      TYPE name_record is record (&lt;br /&gt;
  3      first_name                            employee.first_name%TYPE,&lt;br /&gt;
  4      middle_name                           employee.middle_name%TYPE,&lt;br /&gt;
  5      last_name                             employee.last_name%TYPE );&lt;br /&gt;
  6      TYPE name_table is table of name_record index by binary_integer;&lt;br /&gt;
  7      t_name                                name_table;&lt;br /&gt;
  8  begin&lt;br /&gt;
  9   t_name(1).first_name  := &amp;quot;JOHN&amp;quot;;&lt;br /&gt;
 10   t_name(1).last_name   := &amp;quot;DOE&amp;quot;;&lt;br /&gt;
 11   t_name(2).first_name  := &amp;quot;JANE&amp;quot;;&lt;br /&gt;
 12   t_name(2).last_name   := &amp;quot;DOE&amp;quot;;&lt;br /&gt;
 13&lt;br /&gt;
 14   dbms_output.put_line(t_name(1).last_name||&amp;quot;, &amp;quot;||t_name(1).first_name);&lt;br /&gt;
 15   dbms_output.put_line(t_name(2).last_name||&amp;quot;, &amp;quot;||t_name(2).first_name);&lt;br /&gt;
 16  end;&lt;br /&gt;
 17  /&lt;br /&gt;
DOE, JOHN&lt;br /&gt;
DOE, JANE&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 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;
== Bulk DML with table of 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE customer_region(&lt;br /&gt;
  2     region_id    NUMBER(4)    PRIMARY KEY,&lt;br /&gt;
  3     region_name  VARCHAR2(11) NOT NULL&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 customer_region VALUES (1,&amp;quot;REGION1&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO customer_region VALUES (2,&amp;quot;REGION2&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO customer_region VALUES (3,&amp;quot;REGION3&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO customer_region VALUES (4,&amp;quot;REGION4&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;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    Type regionRecord IS Record(region_id NUMBER(4),region_name VARCHAR2(10));&lt;br /&gt;
  3    Type region_tbl IS TABLE of regionRecord INDEX BY BINARY_INTEGER;&lt;br /&gt;
  4    regionRecords region_tbl;&lt;br /&gt;
  5    returnCode NUMBER;&lt;br /&gt;
  6    Ret_errorMessage VARCHAR2(1000);&lt;br /&gt;
  7    Procedure load_regions (regionRecords IN region_tbl,&lt;br /&gt;
  8           returnCode OUT NUMBER,&lt;br /&gt;
  9           errorMessage OUT VARCHAR2)&lt;br /&gt;
 10    Is&lt;br /&gt;
 11    BEGIN&lt;br /&gt;
 12&lt;br /&gt;
 13      DELETE FROM customer_region;&lt;br /&gt;
 14&lt;br /&gt;
 15      FOR i in regionRecords.FIRST..regionRecords.LAST LOOP&lt;br /&gt;
 16        INSERT INTO customer_region&lt;br /&gt;
 17        values (regionRecords(i).region_id,regionRecords(i).region_name);&lt;br /&gt;
 18      END LOOP;&lt;br /&gt;
 19&lt;br /&gt;
 20      COMMIT;&lt;br /&gt;
 21&lt;br /&gt;
 22    EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 23&lt;br /&gt;
 24      returnCode :=SQLCODE;&lt;br /&gt;
 25&lt;br /&gt;
 26      errorMessage :=SQLERRM;&lt;br /&gt;
 27&lt;br /&gt;
 28    END;&lt;br /&gt;
 29  BEGIN&lt;br /&gt;
 30    FOR i IN 1..5 LOOP&lt;br /&gt;
 31      regionRecords(i).region_id :=i;&lt;br /&gt;
 32      regionRecords(i).region_name :=&amp;quot;REGION&amp;quot;||i;&lt;br /&gt;
 33    END LOOP;&lt;br /&gt;
 34    Load_regions(regionRecords,returnCode,ret_errorMessage);&lt;br /&gt;
 35  EXCEPTION WHEN OTHERS THEN&lt;br /&gt;
 36    RAISE_APPLICATION_ERROR(-20111,SQLERRM);&lt;br /&gt;
 37  END;&lt;br /&gt;
 38  /&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 table customer_region;&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;
== Defining an Index-by table of 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;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2    TYPE hrc_company_rec IS RECORD&lt;br /&gt;
  3      (hrc_company_id NUMBER,&lt;br /&gt;
  4       product_description VARCHAR2(20),&lt;br /&gt;
  5       company_short_name VARCHAR2(30));&lt;br /&gt;
  6&lt;br /&gt;
  7    TYPE hrc_company IS TABLE OF hrc_company_rec INDEX BY BINARY_INTEGER;&lt;br /&gt;
  8&lt;br /&gt;
  9    v_example_tab hrc_company;&lt;br /&gt;
 10  BEGIN&lt;br /&gt;
 11    /*Do some processing */&lt;br /&gt;
 12    null;&lt;br /&gt;
 13  END;&lt;br /&gt;
 14  /&lt;br /&gt;
PL/SQL procedure successfully completed.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Table collection of 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;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE process_vacations IS&lt;br /&gt;
  2     TYPE pv_vacation_rec IS RECORD&lt;br /&gt;
  3        (pv_vacationing_user_txt    VARCHAR2(30),&lt;br /&gt;
  4         pv_start_date              VARCHAR2(10),&lt;br /&gt;
  5         pv_end_date                VARCHAR2(10),&lt;br /&gt;
  6         pv_redirect_interviews_txt VARCHAR2(30),&lt;br /&gt;
  7         pv_redirect_reviews_txt    VARCHAR2(30));&lt;br /&gt;
  8     TYPE pv_type_vacation_tab IS TABLE OF pv_vacation_rec&lt;br /&gt;
  9        INDEX BY BINARY_INTEGER;&lt;br /&gt;
 10     PROCEDURE process_schedules (p_vac_tab IN pv_type_vacation_tab);&lt;br /&gt;
 11  END process_vacations;&lt;br /&gt;
 12  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY process_vacations IS&lt;br /&gt;
  2&lt;br /&gt;
  3      PROCEDURE process_schedules (p_vac_tab IN pv_type_vacation_tab) IS&lt;br /&gt;
  4      BEGIN&lt;br /&gt;
  5         FOR lv_loop_counter_num IN 1..p_vac_tab.COUNT LOOP&lt;br /&gt;
  6            NULL;&lt;br /&gt;
  7         END LOOP;&lt;br /&gt;
  8      END process_schedules;&lt;br /&gt;
  9  END process_vacations;&lt;br /&gt;
 10  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>