use virtual table in PL/SQL block : Table of number « PL SQL « Oracle PL / SQL






use virtual table in PL/SQL block

    
SQL>
SQL>
SQL> create or replace type virtual_table_type as table of number
  2      /

Type created.

SQL> create or replace
  2      function virtual_table( p_start number,
  3                              p_end number ) return virtual_table_type as
  4        l_vt_type virtual_table_type := virtual_table_type();
  5      begin
  6        for i in p_start .. p_end loop
  7          l_vt_type.extend();
  8          dbms_output.put_line( 'adding ' || i || ' to collection...' );
  9          l_vt_type(l_vt_type.count) := i;
 10       end loop;
 11       dbms_output.put_line( 'done...' );
 12       return l_vt_type;
 13     end virtual_table;
 14     /

Function created.

SQL> set serveroutput on
SQL>      begin
  2        for x in ( select *
  3                     from table( virtual_table( -2, 2) ) )
  4        loop
  5          dbms_output.put_line( 'printing from anonymous block ' ||
  6                                x.column_value );
  7        end loop;
  8      end;
  9      /
adding -2 to collection...
adding -1 to collection...
adding 0 to collection...
adding 1 to collection...
adding 2 to collection...
done...
printing from anonymous block -2
printing from anonymous block -1
printing from anonymous block 0
printing from anonymous block 1
printing from anonymous block 2

PL/SQL procedure successfully completed.

   
    
    
  








Related examples in the same category

1.TYPE NumbersTab IS TABLE OF NUMBER.
2.Legal and illegal table assignments.
3.Number Table by BINARY_INTEGER
4.Declare an index-by table variable to hold the employee records that we read in
5.Clear the salaries table by assigning the empty version to it
6.assignments to nested table elements, and the ORA-6533 error.
7.Use nested table constructors.
8.NULL key value in an index-by table
9.Try to insert elements 3 through 5
10.Use the Oracle10g Collection API COUNT method against an element.
11.Use the Oracle10g Collection API DELETE method against a set of elements.
12.Use the Oracle10g Collection API EXISTS method against an element.
13.Use the Oracle10g Collection API EXTEND method against an element.
14.Use the Oracle10g Collection API FIRST and LAST methods against a collection.
15.A nested table of a scalar variable:
16.Associate array: varchar2 to number map
17.Delete a elements from 2, 3 and 4.
18.Delete element 2.
19.number_list.EXTEND(2): Add two null value members at the end of the list.
20.number_list.EXTEND(3,4): Add three members at the end of the list and copy the contents of item 4
21.EXISTS method
22.Use variable.Last to get the last element
23.Extend space in number list.
24.FIRST method returns the lowest subscript value used in a collection
25.Table of number index by varchar2