<?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%2FSet%2FMULTISET_UNION</id>
		<title>Oracle PL/SQL Tutorial/Set/MULTISET UNION - История изменений</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%2FSet%2FMULTISET_UNION"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Set/MULTISET_UNION&amp;action=history"/>
		<updated>2026-05-24T12:32:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Set/MULTISET_UNION&amp;diff=3116&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/Set/MULTISET_UNION&amp;diff=3116&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/Set/MULTISET_UNION&amp;diff=3117&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/Set/MULTISET_UNION&amp;diff=3117&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:10Z</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;== MULTISET EXCEPT==&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 nested_type IS TABLE OF NUMBER;&lt;br /&gt;
  3      nt1 nested_type := nested_type(1,2,3);&lt;br /&gt;
  4      nt2 nested_type := nested_type(3,2,1);&lt;br /&gt;
  5      nt3 nested_type := nested_type(2,3,1,3);&lt;br /&gt;
  6      nt4 nested_type := nested_type(1,2,4);&lt;br /&gt;
  7      answer nested_type;&lt;br /&gt;
  8      PROCEDURE show_answer (str IN VARCHAR2)&lt;br /&gt;
  9      IS&lt;br /&gt;
 10         l_row   PLS_INTEGER;&lt;br /&gt;
 11      BEGIN&lt;br /&gt;
 12         DBMS_OUTPUT.put_line (str);&lt;br /&gt;
 13         l_row := answer.FIRST;&lt;br /&gt;
 14&lt;br /&gt;
 15         WHILE (l_row IS NOT NULL)&lt;br /&gt;
 16         LOOP&lt;br /&gt;
 17            DBMS_OUTPUT.put_line (l_row || &amp;quot;=&amp;quot; || answer (l_row));&lt;br /&gt;
 18            l_row := answer.NEXT (l_row);&lt;br /&gt;
 19         END LOOP;&lt;br /&gt;
 20&lt;br /&gt;
 21         DBMS_OUTPUT.put_line (&amp;quot;&amp;quot;);&lt;br /&gt;
 22      END show_answer;&lt;br /&gt;
 23  BEGIN&lt;br /&gt;
 24      answer := nt1 MULTISET UNION nt4;&lt;br /&gt;
 25      show_answer(&amp;quot;nt1 MULTISET UNION nt4&amp;quot;);&lt;br /&gt;
 26      answer := nt1 MULTISET UNION nt3;&lt;br /&gt;
 27      show_answer(&amp;quot;nt1 MULTISET UNION nt3&amp;quot;);&lt;br /&gt;
 28      answer := nt1 MULTISET UNION DISTINCT nt3;&lt;br /&gt;
 29      show_answer(&amp;quot;nt1 MULTISET UNION DISTINCT nt3&amp;quot;);&lt;br /&gt;
 30      answer := nt2 MULTISET INTERSECT nt3;&lt;br /&gt;
 31      show_answer(&amp;quot;nt2 MULTISET INTERSECT nt3&amp;quot;);&lt;br /&gt;
 32      answer := nt2 MULTISET INTERSECT DISTINCT nt3;&lt;br /&gt;
 33      show_answer(&amp;quot;nt2 MULTISET INTERSECT DISTINCT nt3&amp;quot;);&lt;br /&gt;
 34      answer := SET(nt3);&lt;br /&gt;
 35      show_answer(&amp;quot;SET(nt3)&amp;quot;);&lt;br /&gt;
 36      answer := nt3 MULTISET EXCEPT nt2;&lt;br /&gt;
 37      show_answer(&amp;quot;nt3 MULTISET EXCEPT nt2&amp;quot;);&lt;br /&gt;
 38      answer := nt3 MULTISET EXCEPT DISTINCT nt2;&lt;br /&gt;
 39      show_answer(&amp;quot;nt3 MULTISET EXCEPT DISTINCT nt2&amp;quot;);&lt;br /&gt;
 40  END;&lt;br /&gt;
 41  /&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;
== MULTISET UNION==&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 strings_nt IS TABLE OF VARCHAR2(100);&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; CREATE OR REPLACE PACKAGE employees_pkg&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     vancouver_employees strings_nt := strings_nt (&amp;quot;R&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;C&amp;quot;);&lt;br /&gt;
  4     newyork_employees   strings_nt := strings_nt (&amp;quot;H&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;A&amp;quot;);&lt;br /&gt;
  5     boston_employees    strings_nt := strings_nt (&amp;quot;S&amp;quot;, &amp;quot;D&amp;quot;);&lt;br /&gt;
  6&lt;br /&gt;
  7     PROCEDURE show_employees (title_in IN VARCHAR2,employees_in IN strings_nt);&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; SHO ERR&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY employees_pkg&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE show_employees(title_in IN VARCHAR2,employees_in IN strings_nt)&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        DBMS_OUTPUT.put_line (title_in);&lt;br /&gt;
  7&lt;br /&gt;
  8        FOR indx IN employees_in.FIRST .. employees_in.LAST&lt;br /&gt;
  9        LOOP&lt;br /&gt;
 10           DBMS_OUTPUT.put_line (indx || &amp;quot; = &amp;quot; || employees_in (indx));&lt;br /&gt;
 11        END LOOP;&lt;br /&gt;
 12&lt;br /&gt;
 13     END show_employees;&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt; SHOw error&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2     our_employees strings_nt := strings_nt();&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4      our_employees := employees_pkg.vancouver_employees&lt;br /&gt;
  5                     MULTISET UNION employees_pkg.newyork_employees;&lt;br /&gt;
  6&lt;br /&gt;
  7      employees_pkg.show_employees (&amp;quot;MINE then VEVA&amp;quot;, our_employees);&lt;br /&gt;
  8&lt;br /&gt;
  9      our_employees := employees_pkg.newyork_employees&lt;br /&gt;
 10                     MULTISET UNION employees_pkg.vancouver_employees;&lt;br /&gt;
 11&lt;br /&gt;
 12      employees_pkg.show_employees (&amp;quot;VEVA then MINE&amp;quot;, our_employees);&lt;br /&gt;
 13&lt;br /&gt;
 14      our_employees := employees_pkg.vancouver_employees&lt;br /&gt;
 15                     MULTISET UNION DISTINCT employees_pkg.newyork_employees;&lt;br /&gt;
 16&lt;br /&gt;
 17      employees_pkg.show_employees (&amp;quot;MINE then VEVA with DISTINCT&amp;quot;, our_employees);&lt;br /&gt;
 18&lt;br /&gt;
 19      our_employees := employees_pkg.vancouver_employees&lt;br /&gt;
 20                     MULTISET INTERSECT employees_pkg.newyork_employees;&lt;br /&gt;
 21&lt;br /&gt;
 22      employees_pkg.show_employees (&amp;quot;IN COMMON&amp;quot;, our_employees);&lt;br /&gt;
 23&lt;br /&gt;
 24      our_employees := employees_pkg.newyork_employees&lt;br /&gt;
 25                     MULTISET EXCEPT employees_pkg.vancouver_employees;&lt;br /&gt;
 26&lt;br /&gt;
 27      employees_pkg.show_employees (q&amp;quot;[ONLY VEVA&amp;quot;S]&amp;quot;, our_employees);&lt;br /&gt;
 28  END;&lt;br /&gt;
 29  /&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;
== MULTISET UNION DISTINCT==&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 strings_nt IS TABLE OF VARCHAR2(100);&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; CREATE OR REPLACE PACKAGE employees_pkg&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     vancouver_employees strings_nt := strings_nt (&amp;quot;R&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;C&amp;quot;);&lt;br /&gt;
  4     newyork_employees   strings_nt := strings_nt (&amp;quot;H&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;A&amp;quot;);&lt;br /&gt;
  5     boston_employees    strings_nt := strings_nt (&amp;quot;S&amp;quot;, &amp;quot;D&amp;quot;);&lt;br /&gt;
  6&lt;br /&gt;
  7     PROCEDURE show_employees(title_in IN VARCHAR2,employees_in IN strings_nt);&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; SHO ERR&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY employees_pkg&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE show_employees(title_in IN VARCHAR2,employees_in IN strings_nt)&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        DBMS_OUTPUT.put_line (title_in);&lt;br /&gt;
  7&lt;br /&gt;
  8        FOR indx IN employees_in.FIRST .. employees_in.LAST&lt;br /&gt;
  9        LOOP&lt;br /&gt;
 10           DBMS_OUTPUT.put_line (indx || &amp;quot; = &amp;quot; || employees_in (indx));&lt;br /&gt;
 11        END LOOP;&lt;br /&gt;
 12&lt;br /&gt;
 13     END show_employees;&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SHOw error&lt;br /&gt;
No errors.&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     our_favorites strings_nt := strings_nt ();&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     our_favorites := employees_pkg.newyork_employees&lt;br /&gt;
  5         MULTISET UNION DISTINCT&lt;br /&gt;
  6        employees_pkg.vancouver_employees;&lt;br /&gt;
  7&lt;br /&gt;
  8     employees_pkg.show_employees(&amp;quot;DISTINCT&amp;quot;, our_favorites);&lt;br /&gt;
  9  END;&lt;br /&gt;
 10  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>