Use user-defined type to combine query logic : Object Table « Object Oriented Database « Oracle PL / SQL






Use user-defined type to combine query logic

   

SQL> create or replace type myScalarType as object( cnt number, average number )
  2  /

Type created.

SQL>
SQL> select username, a.data.cnt, a.data.average
  2    from (
  3      select username, (select myScalarType( count(*), avg(object_id) ) from all_objects b where b.owner = a.username ) data from all_users a ) A
  4  /

USERNAME                         DATA.CNT DATA.AVERAGE
------------------------------ ---------- ------------
SYS                                  6520   5009.74064
SYSTEM                                422   6095.87678
OUTLN                                   7   1172.57143
DIP                                     0
TSMSYS                                  2       8606.5
INV15                                   2      16237.5
DBSNMP                                 46   9592.65217
INV10                                   2      16227.5
CTXSYS                                338   9877.92012
XDB                                   334   10800.7485
ANONYMOUS                               0

USERNAME                         DATA.CNT DATA.AVERAGE
------------------------------ ---------- ------------
MDSYS                                 458   11667.2009
HR                                     34      12104.5
FLOWS_FILES                            11   12717.2727
FLOWS_020100                         1085    12813.424
JAVA2S                                530   16254.6849
INV11                                   2      16229.5
INV12                                   2      16231.5
INV13                                   2      16233.5
INV14                                   2      16235.5
PLSQL                                   0
INV16                                   2      16239.5

USERNAME                         DATA.CNT DATA.AVERAGE
------------------------------ ---------- ------------
INV17                                   2      16241.5
INV18                                   2      16243.5
INV19                                   2      16245.5
INV20                                   2      16247.5
DEFINER                                 4      16250.5

27 rows selected.

SQL>
SQL>
SQL>

   
    
    
  








Related examples in the same category

1.Crate table with object column
2.Use a table alias and the name of the object
3.Create table with user defined type as column
4.Create a table with user define varray as column type
5.Create a table with nested user defined type as column
6.Object table: a table of type
7.Use user-defined varray type as column type
8.Nested table
9.Create a table based on user-defined object only
10.Implementation of many to many using object references
11.Implementation of multiple inheritance relationship
12.Implementation of one to many using object references
13.Create table based on single data type
14.Create table with nested types
15.Create type and use it as table column
16.One to one using object references
17.Create a new type and add it to a table
18.Multilevel aggregation relationships using nested tables