<?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%2FStored_Procedure_Function%2FPIPELINED</id>
		<title>Oracle PL/SQL/Stored Procedure Function/PIPELINED - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FStored_Procedure_Function%2FPIPELINED"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Stored_Procedure_Function/PIPELINED&amp;action=history"/>
		<updated>2026-04-05T16:15:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Stored_Procedure_Function/PIPELINED&amp;diff=2088&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/Stored_Procedure_Function/PIPELINED&amp;diff=2088&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://sqle.ru/index.php?title=Oracle_PL/SQL/Stored_Procedure_Function/PIPELINED&amp;diff=2089&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Stored_Procedure_Function/PIPELINED&amp;diff=2089&amp;oldid=prev"/>
				<updated>2010-05-26T10:00:52Z</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 example of a pipelined table function.==&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; CREATE TYPE MyType AS OBJECT (&lt;br /&gt;
  2    field1 NUMBER,&lt;br /&gt;
  3    field2 VARCHAR2(50));&lt;br /&gt;
  4  /&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE or replace TYPE MyTypeList AS TABLE OF MyType;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION PipelineMe&lt;br /&gt;
  2    RETURN MyTypeList PIPELINED AS&lt;br /&gt;
  3    v_MyType MyType;&lt;br /&gt;
  4  BEGIN&lt;br /&gt;
  5    FOR v_Count IN 1..20 LOOP&lt;br /&gt;
  6      v_MyType := MyType(v_Count, &amp;quot;Row &amp;quot; || v_Count);&lt;br /&gt;
  7      PIPE ROW(v_MyType);&lt;br /&gt;
  8    END LOOP;&lt;br /&gt;
  9    RETURN;&lt;br /&gt;
 10  END PipelineMe;&lt;br /&gt;
 11  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2    FROM TABLE(PipelineMe);&lt;br /&gt;
    FIELD1 FIELD2&lt;br /&gt;
---------- --------------------------------------------------&lt;br /&gt;
         1 Row 1&lt;br /&gt;
         2 Row 2&lt;br /&gt;
         3 Row 3&lt;br /&gt;
         4 Row 4&lt;br /&gt;
         5 Row 5&lt;br /&gt;
         6 Row 6&lt;br /&gt;
         7 Row 7&lt;br /&gt;
         8 Row 8&lt;br /&gt;
         9 Row 9&lt;br /&gt;
        10 Row 10&lt;br /&gt;
        11 Row 11&lt;br /&gt;
        12 Row 12&lt;br /&gt;
        13 Row 13&lt;br /&gt;
        14 Row 14&lt;br /&gt;
        15 Row 15&lt;br /&gt;
        16 Row 16&lt;br /&gt;
        17 Row 17&lt;br /&gt;
        18 Row 18&lt;br /&gt;
        19 Row 19&lt;br /&gt;
        20 Row 20&lt;br /&gt;
20 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DROP TYPE MyType;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;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;
==pipelined returning value and table() function==&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; create table myTable as&lt;br /&gt;
  2   select trunc(created) created&lt;br /&gt;
  3   from all_objects;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace&lt;br /&gt;
  2   type date_list is table of Date;&lt;br /&gt;
  3  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt; create or replace function pipe_date(p_start date, p_limit number)&lt;br /&gt;
  2   return date_list pipelined is&lt;br /&gt;
  3   begin&lt;br /&gt;
  4       for i in 0 .. p_limit-1 loop&lt;br /&gt;
  5           pipe row (p_start + i);&lt;br /&gt;
  6       end loop;&lt;br /&gt;
  7   return;&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; select column_value, count(created) no_of_obj&lt;br /&gt;
  2   from myTable, table(pipe_date(trunc(sysdate)-14,14))&lt;br /&gt;
  3   where column_value = myTable.created(+)&lt;br /&gt;
  4   group by column_value&lt;br /&gt;
  5  /&lt;br /&gt;
COLUMN_VA  NO_OF_OBJ&lt;br /&gt;
--------- ----------&lt;br /&gt;
12-OCT-09          0&lt;br /&gt;
13-OCT-09          0&lt;br /&gt;
14-OCT-09          0&lt;br /&gt;
15-OCT-09         45&lt;br /&gt;
16-OCT-09         55&lt;br /&gt;
17-OCT-09        243&lt;br /&gt;
18-OCT-09        177&lt;br /&gt;
19-OCT-09         53&lt;br /&gt;
20-OCT-09          0&lt;br /&gt;
21-OCT-09         24&lt;br /&gt;
22-OCT-09          0&lt;br /&gt;
COLUMN_VA  NO_OF_OBJ&lt;br /&gt;
--------- ----------&lt;br /&gt;
23-OCT-09          0&lt;br /&gt;
24-OCT-09          0&lt;br /&gt;
25-OCT-09          0&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myTable;&lt;br /&gt;
Table dropped.&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;
==Using a pipelined table function.==&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; CREATE OR REPLACE TYPE OracleError AS OBJECT (&lt;br /&gt;
  2    ErrNumber INTEGER,&lt;br /&gt;
  3    Message VARCHAR2(4000));&lt;br /&gt;
  4  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE TYPE OracleErrors AS TABLE OF OracleError;&lt;br /&gt;
  2  /&lt;br /&gt;
Type created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION OracleErrorTable&lt;br /&gt;
  2    RETURN OracleErrors DETERMINISTIC PIPELINED&lt;br /&gt;
  3  AS&lt;br /&gt;
  4    v_Low PLS_INTEGER := -65535;&lt;br /&gt;
  5    v_High PLS_INTEGER := 100;&lt;br /&gt;
  6    v_Message VARCHAR2(4000);&lt;br /&gt;
  7  BEGIN&lt;br /&gt;
  8    FOR i IN v_Low..v_High LOOP&lt;br /&gt;
  9      v_Message := SQLERRM(i);&lt;br /&gt;
 10&lt;br /&gt;
 11      IF v_Message != &amp;quot; -&amp;quot; || TO_CHAR(i) || &amp;quot;: non-ORACLE exception &amp;quot;&lt;br /&gt;
 12      AND v_Message != &amp;quot;ORA&amp;quot; || TO_CHAR(i, &amp;quot;00000&amp;quot;) || &amp;quot;: Message &amp;quot; ||&lt;br /&gt;
 13          TO_CHAR(-i) || &amp;quot; not found;  product=RDBMS; facility=ORA&amp;quot;&lt;br /&gt;
 14      THEN&lt;br /&gt;
 15        PIPE ROW(OracleError(i, v_Message));&lt;br /&gt;
 16      END IF;&lt;br /&gt;
 17    END LOOP;&lt;br /&gt;
 18    RETURN;&lt;br /&gt;
 19  END;&lt;br /&gt;
 20  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE VIEW all_oracle_errors&lt;br /&gt;
  2    AS SELECT * FROM TABLE(OracleErrorTable());&lt;br /&gt;
View created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; desc all_oracle_errors&lt;br /&gt;
 Name                                      Null?    Type&lt;br /&gt;
 ----------------------------------------- -------- ----------------------------&lt;br /&gt;
 ERRNUMBER                                          NUMBER&lt;br /&gt;
 MESSAGE                                            VARCHAR2(4000)&lt;br /&gt;
SQL&amp;gt; SELECT MIN(errnumber), MAX(errnumber), COUNT(*) FROM all_oracle_errors;&lt;br /&gt;
MIN(ERRNUMBER) MAX(ERRNUMBER)   COUNT(*)&lt;br /&gt;
-------------- -------------- ----------&lt;br /&gt;
        -44412            100      15430&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; COLUMN message FORMAT a60&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT *&lt;br /&gt;
  2    FROM all_oracle_errors&lt;br /&gt;
  3    WHERE errnumber BETWEEN -115 AND 100;&lt;br /&gt;
 ERRNUMBER MESSAGE&lt;br /&gt;
---------- ------------------------------------------------------------&lt;br /&gt;
      -115 ORA-00115: connection refused; dispatcher connection table i&lt;br /&gt;
           s full&lt;br /&gt;
      -114 ORA-00114: missing value for system parameter SERVICE_NAMES&lt;br /&gt;
      -113 ORA-00113: protocol name  is too long&lt;br /&gt;
      -112 ORA-00112: value of  is null&lt;br /&gt;
      -111 ORA-00111: invalid attribute&lt;br /&gt;
      -110 ORA-00110: invalid value  for attribute , must be between  a&lt;br /&gt;
           nd&lt;br /&gt;
      -109 ORA-00109: invalid value for attribute :&lt;br /&gt;
      -108 ORA-00108: failed to set up dispatcher to accept connection&lt;br /&gt;
           asynchronously&lt;br /&gt;
      -107 ORA-00107: failed to connect to ORACLE listener process&lt;br /&gt;
      -106 ORA-00106: cannot startup/shutdown database when connected t&lt;br /&gt;
           o a dispatcher&lt;br /&gt;
      -105 ORA-00105: too many dispatcher configurations&lt;br /&gt;
      -104 ORA-00104: deadlock detected; all public servers blocked wai&lt;br /&gt;
           ting for resources&lt;br /&gt;
      -103 ORA-00103: invalid network protocol; reserved for use by dis&lt;br /&gt;
           patchers&lt;br /&gt;
      -102 ORA-00102: network protocol  cannot be used by dispatchers&lt;br /&gt;
      -101 ORA-00101: invalid specification for system parameter DISPAT&lt;br /&gt;
           CHERS&lt;br /&gt;
      -100 ORA-00100: no data found&lt;br /&gt;
       -97 ORA-00097: use of Oracle SQL feature not in SQL92  Level&lt;br /&gt;
       -96 ORA-00096: invalid value  for parameter , must be from among&lt;br /&gt;
&lt;br /&gt;
       -94 ORA-00094:  requires an integer value&lt;br /&gt;
       -93 ORA-00093:  must be between  and&lt;br /&gt;
       -92 ORA-00092: LARGE_POOL_SIZE must be greater than LARGE_POOL_M&lt;br /&gt;
           IN_ALLOC&lt;br /&gt;
       -91 ORA-00091: LARGE_POOL_SIZE must be at least&lt;br /&gt;
       -90 ORA-00090: failed to allocate memory for cluster database OR&lt;br /&gt;
           ADEBUG command&lt;br /&gt;
       -89 ORA-00089: invalid instance number in ORADEBUG command&lt;br /&gt;
       -88 ORA-00088: command cannot be executed by shared server&lt;br /&gt;
       -87 ORA-00087: command cannot be executed on remote instance&lt;br /&gt;
       -86 ORA-00086: user call does not exist&lt;br /&gt;
       -85 ORA-00085: current call does not exist&lt;br /&gt;
       -84 ORA-00084: global area must be PGA, SGA, or UGA&lt;br /&gt;
       -83 ORA-00083: warning: possibly corrupt SGA mapped&lt;br /&gt;
       -82 ORA-00082: memory size of  is not in valid set of [1], [2],&lt;br /&gt;
           [4]&lt;br /&gt;
       -81 ORA-00081: address range [, ) is not readable&lt;br /&gt;
       -80 ORA-00080: invalid global area specified by level&lt;br /&gt;
       -79 ORA-00079: variable  not found&lt;br /&gt;
       -78 ORA-00078: cannot dump variables by name&lt;br /&gt;
       -77 ORA-00077: dump  is not valid&lt;br /&gt;
       -76 ORA-00076: dump  not found&lt;br /&gt;
       -75 ORA-00075: process &amp;quot;&amp;quot; not found in this instance&lt;br /&gt;
       -74 ORA-00074: no process has been specified&lt;br /&gt;
       -73 ORA-00073: command  takes between  and  argument(s)&lt;br /&gt;
       -72 ORA-00072: process &amp;quot;&amp;quot; is not active&lt;br /&gt;
       -71 ORA-00071: process number must be between 1 and&lt;br /&gt;
       -70 ORA-00070: command  is not valid&lt;br /&gt;
       -69 ORA-00069: cannot acquire lock -- table locks disabled for&lt;br /&gt;
       -68 ORA-00068: invalid value  for parameter , must be between  a&lt;br /&gt;
           nd&lt;br /&gt;
       -67 ORA-00067: invalid value  for parameter ; must be at least&lt;br /&gt;
       -65 ORA-00065: initialization of FIXED_DATE failed&lt;br /&gt;
       -64 ORA-00064: object is too large to allocate on this O/S (,)&lt;br /&gt;
       -63 ORA-00063: maximum number of log files exceeded&lt;br /&gt;
       -62 ORA-00062: DML full-table lock cannot be acquired; DML_LOCKS&lt;br /&gt;
            is 0&lt;br /&gt;
       -61 ORA-00061: another instance has a different DML_LOCKS settin&lt;br /&gt;
           g&lt;br /&gt;
       -60 ORA-00060: deadlock detected while waiting for resource&lt;br /&gt;
       -59 ORA-00059: maximum number of DB_FILES exceeded&lt;br /&gt;
       -58 ORA-00058: DB_BLOCK_SIZE must be  to mount this database (no&lt;br /&gt;
           t )&lt;br /&gt;
       -57 ORA-00057: maximum number of temporary table locks exceeded&lt;br /&gt;
       -56 ORA-00056: DDL lock on object &amp;quot;.&amp;quot; is already held in an inco&lt;br /&gt;
           mpatible mode&lt;br /&gt;
       -55 ORA-00055: maximum number of DML locks exceeded&lt;br /&gt;
       -54 ORA-00054: resource busy and acquire with NOWAIT specified&lt;br /&gt;
       -53 ORA-00053: maximum number of enqueues exceeded&lt;br /&gt;
       -52 ORA-00052: maximum number of enqueue resources () exceeded&lt;br /&gt;
       -51 ORA-00051: timeout occurred while waiting for a resource&lt;br /&gt;
       -50 ORA-00050: operating system error occurred while obtaining a&lt;br /&gt;
           n enqueue&lt;br /&gt;
       -42 ORA-00042: Unknown Service name&lt;br /&gt;
       -41 ORA-00041: active time limit exceeded - session terminated&lt;br /&gt;
       -40 ORA-00040: active time limit exceeded - call aborted&lt;br /&gt;
       -38 ORA-00038: Cannot create session: server group belongs to an&lt;br /&gt;
           other user&lt;br /&gt;
       -37 ORA-00037: cannot switch to a session belonging to a differe&lt;br /&gt;
           nt server group&lt;br /&gt;
       -36 ORA-00036: maximum number of recursive SQL levels () exceede&lt;br /&gt;
           d&lt;br /&gt;
       -35 ORA-00035: LICENSE_MAX_USERS cannot be less than current num&lt;br /&gt;
           ber of users&lt;br /&gt;
       -34 ORA-00034: cannot  in current PL/SQL session&lt;br /&gt;
       -33 ORA-00033: current session has empty migration password&lt;br /&gt;
       -32 ORA-00032: invalid session migration password&lt;br /&gt;
       -31 ORA-00031: session marked for kill&lt;br /&gt;
       -30 ORA-00030: User session ID does not exist.&lt;br /&gt;
       -29 ORA-00029: session is not a user session&lt;br /&gt;
       -28 ORA-00028: your session has been killed&lt;br /&gt;
       -27 ORA-00027: cannot kill current session&lt;br /&gt;
       -26 ORA-00026: missing or invalid session ID&lt;br /&gt;
       -25 ORA-00025: failed to allocate&lt;br /&gt;
       -24 ORA-00024: logins from more than one process not allowed in&lt;br /&gt;
           single-process mode&lt;br /&gt;
       -23 ORA-00023: session references process private memory; cannot&lt;br /&gt;
            detach session&lt;br /&gt;
       -22 ORA-00022: invalid session ID; access denied&lt;br /&gt;
       -21 ORA-00021: session attached to some other process; cannot sw&lt;br /&gt;
           itch session&lt;br /&gt;
       -20 ORA-00020: maximum number of processes () exceeded&lt;br /&gt;
       -19 ORA-00019: maximum number of session licenses exceeded&lt;br /&gt;
       -18 ORA-00018: maximum number of sessions exceeded&lt;br /&gt;
       -17 ORA-00017: session requested to set trace event&lt;br /&gt;
        -1 ORA-00001: unique constraint (.) violated&lt;br /&gt;
         0 ORA-0000: normal, successful completion&lt;br /&gt;
         1 User-Defined Exception&lt;br /&gt;
       100 ORA-01403: no data found&lt;br /&gt;
91 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DROP TYPE OracleErrors;&lt;br /&gt;
Type dropped.&lt;br /&gt;
SQL&amp;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>