MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/cdclst.sql

Rem
Rem $Header: rdbms/admin/cdclst.sql /main/10 2017/01/21 02:46:24 youjuki Exp $
Rem
Rem catclst.sql
Rem
Rem Copyright (c) 2011, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      cdclst.sql - defines views for clustering clause of a table
Rem
Rem    DESCRIPTION
Rem      Oracle 12.1 provides a clustering clause on a table see:
Rem      project 35621. For example  
Rem         CREATE TABLE t1 (c1 NUMBER, c2 number, c3 NUMBER)
Rem         CLUSTERING BY DIMENSIONS (c1, c2)
Rem
Rem      This file provides dictionary views for the clustering clause of
Rem      a table
Rem
Rem    NOTES
Rem      Must be run while connectd as SYS or INTERNAL
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/cdclst.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/cdclst.sql
Rem SQL_PHASE: CDCLST
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catalog.sql
Rem END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    youjuki     01/17/17 - bug 24923302: Fix in DBA_CLUSTERING_JOINS
Rem    skayoor     11/30/14 - Proj 58196: Change Select priv to Read Priv
Rem    mziauddi    03/04/14 - #(18316994) add WITH_ZONEMAP column to
Rem                           *_CLUSTERING_TABLES views
Rem    surman      12/29/13 - 13922626: Update SQL metadata
Rem    talliu      06/28/13 - Add CDB view for DBA view
Rem    surman      03/27/12 - 13615447: Add SQL patching tags
Rem    jnarasin    10/28/11 - dont show tables from recycle bin
Rem    awitkows    09/20/11 - rename multidimensional to interleaved
Rem    awitkows    07/12/11 - add valid flag
Rem    jnarasin    05/13/11 - Add Clustering views
Rem    awitkows    04/11/11 - dictionary views for table clustering clause
Rem    awitkows    04/11/11 - Created
Rem

@@?/rdbms/admin/sqlsessstart.sql

rem DBA_CLUSTERING_TABLES
rem bitand(o.flags, 128) = 0 condition is used to determine if the table
rem is part of recycle bin

create or replace view DBA_CLUSTERING_TABLES
   (owner, table_name, clustering_type, on_load, on_datamovement, valid, 
    with_zonemap, last_load_clst, last_datamove_clst)
as
select u.name, o.name, 
  case when c.clstfunc = 1 then 'INTERLEAVED'
       else 'LINEAR'
  end,
  decode(bitand(c.flags, 1), 0, 'NO', 'YES'),
  decode(bitand(c.flags, 2), 0, 'NO', 'YES'),
  decode(bitand(c.flags, 4), 0, 'YES', 'NO'),
  decode(bitand(c.flags, 8), 0, 'NO', 'YES'),
  clstlastload,
  clstlastdm
from sys.user$ u, sys.clst$ c, sys.obj$ o
where o.owner# = u.user#
  and o.obj# = c.clstobj#
  and bitand(o.flags, 128) = 0
/
comment on table DBA_CLUSTERING_TABLES is
'Description of the clustering clause of tables accessible to dba'
/
comment on column DBA_CLUSTERING_TABLES.OWNER is
'Owner of the table'
/
comment on column DBA_CLUSTERING_TABLES.TABLE_NAME is
'Name of the table'
/
comment on column DBA_CLUSTERING_TABLES.CLUSTERING_TYPE is
'Clustering type'
/
comment on column DBA_CLUSTERING_TABLES.ON_LOAD is
'Will Oracle cluster data on load'
/
comment on column DBA_CLUSTERING_TABLES.ON_DATAMOVEMENT is
'Will Oracle cluster data on data movement, for example partition move'
/
comment on column DBA_CLUSTERING_TABLES.VALID is
'Is clustering valid. It is invalid if dimension does not have pk/uk constraint'
/
comment on column DBA_CLUSTERING_TABLES.WITH_ZONEMAP is
'Is a zonemap also created with clustering'
/
comment on column DBA_CLUSTERING_TABLES.LAST_LOAD_CLST is
'Last time the clustering occured on load'
/
comment on column DBA_CLUSTERING_TABLES.LAST_DATAMOVE_CLST is
'Last time the clustering occured on data movement, for example partition move'
/
create or replace public synonym DBA_CLUSTERING_TABLES for DBA_CLUSTERING_TABLES
/
grant select on DBA_CLUSTERING_TABLES to select_catalog_role
/


execute CDBView.create_cdbview(false,'SYS','DBA_CLUSTERING_TABLES','CDB_CLUSTERING_TABLES');
grant select on SYS.CDB_CLUSTERING_TABLES to select_catalog_role
/
create or replace public synonym CDB_CLUSTERING_TABLES for SYS.CDB_CLUSTERING_TABLES
/

rem USER_CLUSTERING_TABLES

create or replace view USER_CLUSTERING_TABLES
   (owner, table_name, clustering_type, on_load, on_datamovement, valid, 
    with_zonemap, last_load_clst, last_datamove_clst)
as 
select owner, table_name, clustering_type, on_load, on_datamovement, valid, 
       with_zonemap, last_load_clst, last_datamove_clst
from   DBA_CLUSTERING_TABLES
WHERE  OWNER = SYS_CONTEXT('USERENV','CURRENT_USER')
/
comment on table USER_CLUSTERING_TABLES is
'Description of the clustering clause of tables created by the user'
/
comment on column USER_CLUSTERING_TABLES.OWNER is
'Owner of the table'
/
comment on column USER_CLUSTERING_TABLES.TABLE_NAME is
'Name of the table'
/
comment on column USER_CLUSTERING_TABLES.CLUSTERING_TYPE is
'Clustering type'
/
comment on column USER_CLUSTERING_TABLES.ON_LOAD is
'Will Oracle cluster data on load'
/
comment on column USER_CLUSTERING_TABLES.ON_DATAMOVEMENT is
'Will Oracle cluster data on data movement, for example partition move'
/
comment on column USER_CLUSTERING_TABLES.VALID is
'Is clustering valid. It is invalid if dimension does not have pk/uk constraint'
/
comment on column USER_CLUSTERING_TABLES.WITH_ZONEMAP is
'Is a zonemap also created with clustering'
/
comment on column USER_CLUSTERING_TABLES.LAST_LOAD_CLST is
'Last time the clustering occured on load'
/
comment on column USER_CLUSTERING_TABLES.LAST_DATAMOVE_CLST is
'Last time the clustering occured on data movement, for example partition move'
/
create or replace public synonym USER_CLUSTERING_TABLES for USER_CLUSTERING_TABLES
/
grant read on USER_CLUSTERING_TABLES to PUBLIC
/

rem ALL_CLUSTERING_TABLES

create or replace view ALL_CLUSTERING_TABLES
   (owner, table_name, clustering_type, on_load, on_datamovement, valid, 
    with_zonemap, last_load_clst, last_datamove_clst)
as 
select c.owner, c.table_name, c.clustering_type, c.on_load, c.on_datamovement, 
       c.valid, c.with_zonemap, c.last_load_clst, c.last_datamove_clst
from   DBA_CLUSTERING_TABLES c, ALL_TABLES t
WHERE  c.OWNER = t.OWNER 
AND    c.TABLE_NAME = t.TABLE_NAME
/
comment on table ALL_CLUSTERING_TABLES is
'Description of the clustering clause of tables accessible to the user'
/
comment on column ALL_CLUSTERING_TABLES.OWNER is
'Owner of the table'
/
comment on column ALL_CLUSTERING_TABLES.TABLE_NAME is
'Name of the table'
/
comment on column ALL_CLUSTERING_TABLES.CLUSTERING_TYPE is
'Clustering type'
/
comment on column ALL_CLUSTERING_TABLES.ON_LOAD is
'Will Oracle cluster data on load'
/
comment on column ALL_CLUSTERING_TABLES.ON_DATAMOVEMENT is
'Will Oracle cluster data on data movement, for example partition move'
/
comment on column ALL_CLUSTERING_TABLES.VALID is
'Is clustering valid. It is invalid if dimension does not have pk/uk constraint'
/
comment on column ALL_CLUSTERING_TABLES.WITH_ZONEMAP is
'Is a zonemap also created with clustering'
/
comment on column ALL_CLUSTERING_TABLES.LAST_LOAD_CLST is
'Last time the clustering occured on load'
/
comment on column ALL_CLUSTERING_TABLES.LAST_DATAMOVE_CLST is
'Last time the clustering occured on data movement, for example partition move'
/
create or replace public synonym ALL_CLUSTERING_TABLES for ALL_CLUSTERING_TABLES
/
grant read on ALL_CLUSTERING_TABLES to PUBLIC
/

Rem DBA_CLUSTERING_KEYS
rem bitand(o.flags, 128) = 0 condition is used to determine if the table
rem is part of recycle bin

create or replace view DBA_CLUSTERING_KEYS
   (owner, table_name, detail_owner, detail_name, detail_column, 
    position, groupid)
as 
select u1.name, o1.name,  u2.name, o2.name, c.name, k.position, k.groupid
from sys.user$ u1, sys.clstkey$ k, sys.obj$ o1,
     sys.user$ u2, sys.obj$ o2, sys.col$ c
where o1.owner# = u1.user#
  and o1.obj# = k.clstobj#
  and o2.owner# = u2.user#
  and o2.obj# = k.tabobj#
  and c.obj# = k.tabobj#
  and c.intcol# = k.intcol#
  and bitand(o1.flags, 128) = 0
  and bitand(o2.flags, 128) = 0
/
comment on table DBA_CLUSTERING_KEYS is
'Description of the keys of the clustering clause of tables accessible to dba'
/
comment on column DBA_CLUSTERING_KEYS.OWNER is
'Owner of the table on which clustering clause is defined'
/
comment on column DBA_CLUSTERING_KEYS.TABLE_NAME is
'Name of the table on which clustering clause is defined'
/
comment on column DBA_CLUSTERING_KEYS.DETAIL_OWNER is
'Owner of the detailed table contributing to the clustering keys'
/
comment on column DBA_CLUSTERING_KEYS.DETAIL_NAME is
'Name of the detailed table contributing to the clustering keys'
/
comment on column DBA_CLUSTERING_KEYS.POSITION is
'Name of the detailed table column for the clustering keys'
/
comment on column DBA_CLUSTERING_KEYS.POSITION is
'Position of the column in the clustering clause'
/
comment on column DBA_CLUSTERING_KEYS.GROUPID is
'Group of the column in the clustering clause'
/
create or replace public synonym DBA_CLUSTERING_KEYS for DBA_CLUSTERING_KEYS
/
grant select on DBA_CLUSTERING_KEYS to select_catalog_role
/


execute CDBView.create_cdbview(false,'SYS','DBA_CLUSTERING_KEYS','CDB_CLUSTERING_KEYS');
grant select on SYS.CDB_CLUSTERING_KEYS to select_catalog_role
/
create or replace public synonym CDB_CLUSTERING_KEYS for SYS.CDB_CLUSTERING_KEYS
/

Rem USER_CLUSTERING_KEYS

create or replace view USER_CLUSTERING_KEYS
   (owner, table_name, detail_owner, detail_name, detail_column, 
    position, groupid)
as 
select owner, table_name, detail_owner, detail_name, detail_column, 
       position, groupid
from DBA_CLUSTERING_KEYS
WHERE owner = SYS_CONTEXT('USERENV','CURRENT_USER')
/
comment on table USER_CLUSTERING_KEYS is
'Description of the keys of the clustering clause of tables created by the user'
/
comment on column USER_CLUSTERING_KEYS.OWNER is
'Owner of the table on which clustering clause is defined'
/
comment on column USER_CLUSTERING_KEYS.TABLE_NAME is
'Name of the table on which clustering clause is defined'
/
comment on column USER_CLUSTERING_KEYS.DETAIL_OWNER is
'Owner of the detailed table contributing to the clustering keys'
/
comment on column USER_CLUSTERING_KEYS.DETAIL_NAME is
'Name of the detailed table contributing to the clustering keys'
/
comment on column USER_CLUSTERING_KEYS.POSITION is
'Name of the detailed table column for the clustering keys'
/
comment on column USER_CLUSTERING_KEYS.POSITION is
'Position of the column in the clustering clause'
/
comment on column USER_CLUSTERING_KEYS.GROUPID is
'Group of the column in the clustering clause'
/
create or replace public synonym USER_CLUSTERING_KEYS for USER_CLUSTERING_KEYS
/
grant read on USER_CLUSTERING_KEYS to PUBLIC
/

Rem ALL_CLUSTERING_KEYS

create or replace view ALL_CLUSTERING_KEYS
   (owner, table_name, detail_owner, detail_name, detail_column, 
    position, groupid)
as 
select k.owner, k.table_name, k.detail_owner, k.detail_name, k.detail_column, 
       k.position, k.groupid
from   DBA_CLUSTERING_KEYS k, ALL_TABLES t
WHERE  k.OWNER = t.OWNER 
AND    k.TABLE_NAME = t.TABLE_NAME
/ 
comment on table ALL_CLUSTERING_KEYS is
'Description of the keys of the clustering clause of tables accessible to the user'
/
comment on column ALL_CLUSTERING_KEYS.OWNER is
'Owner of the table on which clustering clause is defined'
/
comment on column ALL_CLUSTERING_KEYS.TABLE_NAME is
'Name of the table on which clustering clause is defined'
/
comment on column ALL_CLUSTERING_KEYS.DETAIL_OWNER is
'Owner of the detailed table contributing to the clustering keys'
/
comment on column ALL_CLUSTERING_KEYS.DETAIL_NAME is
'Name of the detailed table contributing to the clustering keys'
/
comment on column ALL_CLUSTERING_KEYS.POSITION is
'Name of the detailed table column for the clustering keys'
/
comment on column ALL_CLUSTERING_KEYS.POSITION is
'Position of the column in the clustering clause'
/
comment on column ALL_CLUSTERING_KEYS.GROUPID is
'Group of the column in the clustering clause'
/
create or replace public synonym ALL_CLUSTERING_KEYS for ALL_CLUSTERING_KEYS
/
grant read on ALL_CLUSTERING_KEYS to PUBLIC
/


REM
REM dba_clustering_dimensions view on clstdimension$
REM bitand(o.flags, 128) = 0 condition is used to determine if the table
REM is part of recycle bin
REM

create or replace view DBA_CLUSTERING_DIMENSIONS 
  (OWNER, TABLE_NAME, DIMENSION_OWNER, DIMENSION_NAME) 
as
select u.NAME, o.NAME, u2.NAME, o2.NAME
from   USER$ u, OBJ$ o, USER$ u2, OBJ$ o2, CLSTDIMENSION$ d
where  u.USER#    = o.OWNER#
and    d.CLSTOBJ# = o.OBJ#
and    u2.USER#   = o2.OWNER#
and    d.TABOBJ#  = o2.OBJ#
and    bitand(o.FLAGS,  128) = 0
and    bitand(o2.FLAGS, 128) = 0
/
comment on table DBA_CLUSTERING_DIMENSIONS is
'All dimension details about clustering tables in the database'
/
comment on column DBA_CLUSTERING_DIMENSIONS.OWNER is
'Owner of the clustering table'
/
comment on column DBA_CLUSTERING_DIMENSIONS.TABLE_NAME is
'Name of the clustering table'
/
comment on column DBA_CLUSTERING_DIMENSIONS.DIMENSION_OWNER is
'Owner of the dimension table'
/
comment on column DBA_CLUSTERING_DIMENSIONS.DIMENSION_NAME is
'Name of the dimension table'
/
create or replace public synonym DBA_CLUSTERING_DIMENSIONS for DBA_CLUSTERING_DIMENSIONS
/
grant select on DBA_CLUSTERING_DIMENSIONS to select_catalog_role
/


execute CDBView.create_cdbview(false,'SYS','DBA_CLUSTERING_DIMENSIONS','CDB_CLUSTERING_DIMENSIONS');
grant select on SYS.CDB_CLUSTERING_DIMENSIONS to select_catalog_role
/
create or replace public synonym CDB_CLUSTERING_DIMENSIONS for SYS.CDB_CLUSTERING_DIMENSIONS
/

REM
REM all_clustering_dimensions view on clstdimension$
REM

create or replace view ALL_CLUSTERING_DIMENSIONS 
  (OWNER, TABLE_NAME, DIMENSION_OWNER, DIMENSION_NAME) 
as
select d.OWNER, d.TABLE_NAME, d.DIMENSION_OWNER, d.DIMENSION_NAME
from   DBA_CLUSTERING_DIMENSIONS d, ALL_TABLES t
WHERE  d.OWNER = t.OWNER 
AND    d.TABLE_NAME = t.TABLE_NAME
/ 
comment on table ALL_CLUSTERING_DIMENSIONS is
'All dimension details about clustering tables the user owns or has system privileges'
/
comment on column ALL_CLUSTERING_DIMENSIONS.OWNER is
'Owner of the clustering table'
/
comment on column ALL_CLUSTERING_DIMENSIONS.TABLE_NAME is
'Name of the clustering table'
/
comment on column ALL_CLUSTERING_DIMENSIONS.DIMENSION_OWNER is
'Owner of the dimension table'
/
comment on column ALL_CLUSTERING_DIMENSIONS.DIMENSION_NAME is
'Name of the dimension table'
/
create or replace public synonym ALL_CLUSTERING_DIMENSIONS for ALL_CLUSTERING_DIMENSIONS
/
grant read on ALL_CLUSTERING_DIMENSIONS to PUBLIC
/

REM
REM user_clustering_dimensions view on clstdimension$
REM

create or replace view USER_CLUSTERING_DIMENSIONS 
  (TABLE_NAME, DIMENSION_OWNER, DIMENSION_NAME) 
as
select d.TABLE_NAME, d.DIMENSION_OWNER, d.DIMENSION_NAME
from   DBA_CLUSTERING_DIMENSIONS d
WHERE  d.OWNER = SYS_CONTEXT('USERENV','CURRENT_USER')
/ 
comment on table USER_CLUSTERING_DIMENSIONS is
'All dimension details about clustering tables owned by the user'
/
comment on column USER_CLUSTERING_DIMENSIONS.TABLE_NAME is
'Name of the clustering table'
/
comment on column DBA_CLUSTERING_DIMENSIONS.DIMENSION_OWNER is
'Owner of the dimension table'
/
comment on column DBA_CLUSTERING_DIMENSIONS.DIMENSION_NAME is
'Name of the dimension table'
/
create or replace public synonym USER_CLUSTERING_DIMENSIONS for USER_CLUSTERING_DIMENSIONS
/
grant read on USER_CLUSTERING_DIMENSIONS to PUBLIC
/

REM
REM dba_clustering_joins view on clstjoin$
REM bitand(o.flags, 128) = 0 condition is used to determine if the table
REM is part of recycle bin
REM

create or replace view DBA_CLUSTERING_JOINS
  (OWNER, TABLE_NAME, TAB1_OWNER, TAB1_NAME, TAB1_COLUMN, 
   TAB2_OWNER, TAB2_NAME, TAB2_COLUMN)
as
select u.NAME, o.NAME, u2.NAME, o2.NAME, c2.NAME, u3.NAME, o3.NAME, c3.NAME
from   USER$ u, OBJ$ o, USER$ u2, OBJ$ o2, COL$ c2, USER$ u3, OBJ$ o3, COL$ c3, 
       CLSTJOIN$ j
where  u.USER#     = o.OWNER#
and    j.CLSTOBJ#  = o.OBJ#
and    u2.USER#    = o2.OWNER#
and    j.TAB1OBJ#  = o2.OBJ#
and    j.TAB1OBJ#  = c2.OBJ#
and    j.INT1COL#  = c2.INTCOL#
and    u3.USER#    = o3.OWNER#
and    j.TAB2OBJ#  = o3.OBJ#
and    j.TAB2OBJ#  = c3.OBJ#
and    j.INT2COL#  = c3.INTCOL#
and    bitand(o.FLAGS,  128) = 0
and    bitand(o2.FLAGS, 128) = 0
and    bitand(o3.FLAGS, 128) = 0
/
comment on table DBA_CLUSTERING_JOINS is
'All join details about clustering tables in the database'
/
comment on column DBA_CLUSTERING_JOINS.OWNER is
'Owner of the clustering table'
/
comment on column DBA_CLUSTERING_JOINS.TABLE_NAME is
'Name of the clustering table'
/
comment on column DBA_CLUSTERING_JOINS.TAB1_OWNER is
'Owner of the first dimension table'
/
comment on column DBA_CLUSTERING_JOINS.TAB1_NAME is
'Name of the first dimension table'
/
comment on column DBA_CLUSTERING_JOINS.TAB1_COLUMN is
'Name of the first dimension table column'
/
comment on column DBA_CLUSTERING_JOINS.TAB2_OWNER is
'Owner of the second dimension table'
/
comment on column DBA_CLUSTERING_JOINS.TAB2_NAME is
'Name of the second dimension table'
/
comment on column DBA_CLUSTERING_JOINS.TAB2_COLUMN is
'Name of the second dimension table column'
/
create or replace public synonym DBA_CLUSTERING_JOINS for DBA_CLUSTERING_JOINS
/
grant select on DBA_CLUSTERING_JOINS to select_catalog_role
/


execute CDBView.create_cdbview(false,'SYS','DBA_CLUSTERING_JOINS','CDB_CLUSTERING_JOINS');
grant select on SYS.CDB_CLUSTERING_JOINS to select_catalog_role
/
create or replace public synonym CDB_CLUSTERING_JOINS for SYS.CDB_CLUSTERING_JOINS
/

REM
REM all_clustering_joins view on clstjoin$
REM

create or replace view ALL_CLUSTERING_JOINS
  (OWNER, TABLE_NAME, TAB1_OWNER, TAB1_NAME, TAB1_COLUMN, 
   TAB2_OWNER, TAB2_NAME, TAB2_COLUMN)
as
select j.OWNER, j.TABLE_NAME, j.TAB1_OWNER, j.TAB1_NAME, 
       j.TAB1_COLUMN, j.TAB2_OWNER, j.TAB2_NAME, 
       j.TAB2_COLUMN
from   DBA_CLUSTERING_JOINS j, ALL_TABLES t
WHERE  j.OWNER = t.OWNER 
AND    j.TABLE_NAME = t.TABLE_NAME
/ 
comment on table ALL_CLUSTERING_JOINS is
'All join details about clustering tables the user owns or has system privileges'
/
comment on column ALL_CLUSTERING_JOINS.OWNER is
'Owner of the clustering table'
/
comment on column ALL_CLUSTERING_JOINS.TABLE_NAME is
'Name of the clustering table'
/
comment on column ALL_CLUSTERING_JOINS.TAB1_OWNER is
'Owner of the first dimension table'
/
comment on column ALL_CLUSTERING_JOINS.TAB1_NAME is
'Name of the first dimension table'
/
comment on column ALL_CLUSTERING_JOINS.TAB1_COLUMN is
'Name of the first dimension table column'
/
comment on column ALL_CLUSTERING_JOINS.TAB2_OWNER is
'Owner of the second dimension table'
/
comment on column ALL_CLUSTERING_JOINS.TAB2_NAME is
'Name of the second dimension table'
/
comment on column ALL_CLUSTERING_JOINS.TAB2_COLUMN is
'Name of the second dimension table column'
/
create or replace public synonym ALL_CLUSTERING_JOINS for ALL_CLUSTERING_JOINS
/
grant read on ALL_CLUSTERING_JOINS to PUBLIC
/

REM
REM user_clustering_joins view on clstjoin$
REM

create or replace view USER_CLUSTERING_JOINS
  (TABLE_NAME, TAB1_OWNER, TAB1_NAME, TAB1_COLUMN, 
   TAB2_OWNER, TAB2_NAME, TAB2_COLUMN)
as
select j.TABLE_NAME, j.TAB1_OWNER, j.TAB1_NAME, 
       j.TAB1_COLUMN, j.TAB2_OWNER, j.TAB2_NAME, 
       j.TAB2_COLUMN
from   DBA_CLUSTERING_JOINS j
WHERE  j.OWNER = SYS_CONTEXT('USERENV','CURRENT_USER')
/ 
comment on table USER_CLUSTERING_JOINS is
'All join details about clustering tables owned by the user'
/
comment on column USER_CLUSTERING_JOINS.TABLE_NAME is
'Name of the clustering table'
/
comment on column USER_CLUSTERING_JOINS.TAB1_OWNER is
'Owner of the first dimension table'
/
comment on column USER_CLUSTERING_JOINS.TAB1_NAME is
'Name of the first dimension table'
/
comment on column USER_CLUSTERING_JOINS.TAB1_COLUMN is
'Name of the first dimension table column'
/
comment on column USER_CLUSTERING_JOINS.TAB2_OWNER is
'Owner of the second dimension table'
/
comment on column USER_CLUSTERING_JOINS.TAB2_NAME is
'Name of the second dimension table'
/
comment on column USER_CLUSTERING_JOINS.TAB2_COLUMN is
'Name of the second dimension table column'
/
create or replace public synonym USER_CLUSTERING_JOINS for USER_CLUSTERING_JOINS
/
grant read on USER_CLUSTERING_JOINS to PUBLIC
/

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO