MINI MINI MANI MO

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

--
-- dbmsaw.sql
-- 
-- Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
--
--    NAME
--      dbmsaw.sql - RDBMS OLAP option package
--
--    DESCRIPTION
--      Defines the interfaces for the OLAP option
--
--    NOTES
--      None
--
-- BEGIN SQL_FILE_METADATA
-- SQL_SOURCE_FILE: oraolap/src/sql/dbmsaw.sql
-- SQL_SHIPPED_FILE: rdbms/admin/dbmsaw.sql
-- SQL_PHASE: DBMSAW
-- SQL_STARTUP_MODE: NORMAL
-- SQL_IGNORABLE_ERRORS: NONE
-- END SQL_FILE_METADATA
--
--    MODIFIED  (MM/DD/YY)
--    jcarey     07/21/17 - Bug 26430699 - clean up metadata
--    ghicks     03/18/17 - Bug 25372717: deal with exotic schemas
--    ghicks     01/13/17 - delete bad_compat_error
--    cchiappa   07/18/16 - Bug#24309417
--    jcarey     03/09/15 - bug 20596234 - add dbms_aw.validate_aw_name
--    cchiappa   08/12/14 - Long identifiers for sparsity advisor
--    cchiappa   03/14/13 - Set _ORACLE_SCRIPT
--    cchiappa   07/25/12 - Add dbms_aw.aw_is_system
--    surman     03/28/12 - 13615447: Add SQL patching tags
--    cchiappa   04/13/11 - Tweak partnum default
--    cchiappa   03/01/11 - Add in_aw_cleanup
--    cchiappa   06/29/09 - Move set_obj_protect to DBMS_AW_EXP
--    cchiappa   10/30/08 - Add ADVICE_NOSAMPLE
--    almurphy   08/18/08 - eif import/export default to include api metadata
--    glyon      11/06/07 - bug 6596816 - change 'grant all' to 'grant execute'
--    hyechung   10/11/07 - add {set,get}_obj_protect
--    hyechung   07/02/07 - eif_out has new argument "dfns"
--    hyechung   05/31/07 - snowflake
--    cchiappa   02/14/07 - Fix partby member of dim_source_t
--    jcarey     10/23/06 - add split param copy
--    jcarey     06/23/06 - cannot convert aw to same name with schema 
--    jcarey     05/25/06 - add DBMS_AW.OLAP_ACTIVE 
--    cchiappa   12/21/05 - Add access tracking hooks 
--    cchiappa   09/13/05 - Add ADVISE_PARTITIONING_LEVEL 
--    jcarey     07/27/05 - back out maint job 
--    jcarey     07/08/05 - add gather stats
--    zqiu       03/02/05 - define awname_null_error 
--    cchiappa   02/28/05 - Add compress param to agg advisor 
--    cchiappa   01/19/05 - Move types out of package into objects
--    cchiappa   01/03/05 - Add CLOB advise_dimensionality 
--    cchiappa   12/13/04 - Move private defs to prvtaw 
--    cchiappa   11/29/04 - Sparsity advisor 
--    ckearney   08/11/04 - add extra limitmap parameters
--    cchiappa   07/13/04 - Move DBMS_AW_EXP to dbmsawex.sql (again) 
--    cchiappa   07/02/04 - Backout split
--    cchiappa   06/30/04 - Move DBMS_AW_EXP to dbmsawex.sql
--    dpeltier   05/14/04 - aw_upgrade -> polymorphic convert
--    cchiappa   05/12/04 - Add DBMS_AW.OLAP_RUNNING
--    cchiappa   04/07/04 - Fix comments
--    dpeltier   03/31/04 - aw_upgrade
--    cchiappa   03/18/04 - DBMS_AW_EXP in exppkgact$ for instances as well
--    ghicks     03/04/04 - more property functions
--    cchiappa   02/20/04 - DBMS_AW.RUN
--    cchiappa   02/16/04 - xsCmdExc, take 2
--    cchiappa   12/15/03 - Add vectored lob import
--    zqiu       10/14/03 - give partnum to the good aw_create
--    zqiu       09/26/03 - add prop_val function
--    ilyubash   08/25/03 - Add OLAPRanCurImpl_t and OLAPRC_TABLE
--    zqiu       09/08/03 - add partnum to aw_create
--    zqiu       09/03/03 - parameter for partitions in aw_copy
--    install    08/06/03 - Dropping body
--    ilyubash   07/10/03 - No more dummy functions
--    esoyleme   07/25/03 - add aw_copy
--    cwelton    02/05/03 - Table functions
--    esoyleme   01/02/03 - convert support
--    cchiappa   12/20/02 - Add more eif synonyms
--    zqiu       12/20/02 - change aw_rename interface
--    cchiappa   12/16/02 - Enhanced eif lob entry points
--    cwelton    12/03/02 - xstfPrepare gets qkn rather than rws
--    cchiappa   10/16/02 - BASE64 for import/export
--    ahopeman   10/10/02 - Add IN/OUT Parms to trusted callouts
--    zqiu       10/09/02 - move procedures for AW_*$
--    cchiappa   10/04/02 - Remove spurious slashes
--    ckearney   10/01/02 - Remove xsmdmgr objects
--    esoyleme   09/26/02 - cube precompute advisor
--    cwelton    10/04/02 - Add Table function Prepare method
--    ckearney   09/16/02 - Add OLAP_EXPRESSION_BOOL.
--    esoyleme   09/06/02 - add simple aggregate advisors
--    ckearney   08/30/02 - Move single row functions operators to C.
--    esoyleme   08/28/02 - grants for OLAP_TEXT_EXPR, etc
--    ilyubash   09/04/02 - add Describe method
--    ckearney   08/13/02 - Add text and date single row function support
--    cwelton    08/23/02 - Remove useless DROP commands
--    ckearney   08/06/02 - Removed dependency of SYS.OLAPROW2CELL object
--    cchiappa   08/01/02 - Tweak aw_update
--    ckearney   08/01/02 - more single row function support
--    cchiappa   07/29/02 - Allow shutdown of OLAP, rename startup
--    cwelton    07/11/02 - add dbms_aw.eval_*
--    jcarey     06/03/02 - support for r2c 
--    cchiappa   03/27/02 - New utility functions
--    cchiappa   01/24/01 - Add IMPORT/EXPORT functionality
--    ahopeman   11/07/01 - Add printlog procedure
--    cwelton    10/29/01 - Move table function body to prvtaw.sql
--    esoyleme   10/09/01 - second enabling transaction
--    jcarey     09/12/01 - More interface work
--    esoyleme   09/10/01 - official tables.
--    ahopeman   09/26/01 - change dbms_xs to dbms_aw
--    jcarey     07/05/01 - interfaces
--    esoyleme   05/11/01 - new function to peek at filter
--    jcarey     06/09/00 - Created
--

@@?/rdbms/admin/sqlsessstart.sql

DROP PUBLIC SYNONYM dbms_aw$_dimension_sources_t
/
DROP PUBLIC SYNONYM dbms_aw$_dimension_source_t
/
DROP PUBLIC SYNONYM dbms_aw$_columnlist_t
/
DROP TYPE sys.dbms_aw$_dimension_sources_t
/
DROP TYPE sys.dbms_aw$_dimension_source_t
/
DROP TYPE sys.dbms_aw$_columnlist_t
/

CREATE OR REPLACE TYPE sys.dbms_aw$_columnlist_t AS TABLE OF VARCHAR2(300)
/
SHOW ERRORS;
CREATE OR REPLACE PUBLIC SYNONYM dbms_aw$_columnlist_t
                         FOR sys.dbms_aw$_columnlist_t
/
GRANT EXECUTE ON dbms_aw$_columnlist_t TO PUBLIC
/

CREATE OR REPLACE TYPE sys.dbms_aw$_dimension_source_t AS OBJECT
   (dimname     VARCHAR2(300),
    columnname  VARCHAR2(300),
    sourcevalue VARCHAR2(32767),
    dimtype     NUMBER(3,0),
    hiercols    dbms_aw$_columnlist_t,
    partby      NUMBER(10,0))
/
SHOW ERRORS;
CREATE OR REPLACE PUBLIC SYNONYM dbms_aw$_dimension_source_t
                         FOR sys.dbms_aw$_dimension_source_t
/
GRANT EXECUTE ON dbms_aw$_dimension_source_t TO PUBLIC
/

CREATE OR REPLACE TYPE dbms_aw$_dimension_sources_t
   AS TABLE OF dbms_aw$_dimension_source_t
/
SHOW ERRORS;
CREATE OR REPLACE PUBLIC SYNONYM dbms_aw$_dimension_sources_t
                         FOR sys.dbms_aw$_dimension_sources_t
/
GRANT EXECUTE ON dbms_aw$_dimension_sources_t TO PUBLIC
/

CREATE OR REPLACE PACKAGE dbms_aw AUTHID CURRENT_USER AS

  ---------------------
  --  OVERVIEW
  --
  --  This package is the interface to the Express server routines.  
  --    interp     - This function interprets an OLAP DML command and
  --                 returns the output as a character LOB.
  --    execute    - This procedure executes an OLAP DML command and uses
  --                 dbms_output to print the results.
  --
  ---------------------
  --  Visibility        
  --   All users
  --
  ---------------------
  --  PROCEDURES

  PROCEDURE initdriver;
  PROCEDURE startup;
  PROCEDURE shutdown(force IN BOOLEAN DEFAULT FALSE);
  PROCEDURE toggleDBCreate;
  FUNCTION  interpclob(cmd_clob IN CLOB) RETURN CLOB;
  FUNCTION  getlog return clob;
  PROCEDURE printlog(log_clob IN CLOB);

  -- Routines which handle output for the user
  PROCEDURE run(cmd IN STRING, silent IN            BOOLEAN DEFAULT FALSE);
  PROCEDURE run(cmd IN CLOB,   silent IN            BOOLEAN DEFAULT FALSE);

  -- Routines which pass data back
  PROCEDURE run(cmd IN STRING, output    OUT        STRING);
  PROCEDURE run(cmd IN STRING, output IN OUT NOCOPY CLOB);
  PROCEDURE run(cmd IN CLOB,   output    OUT        STRING);
  PROCEDURE run(cmd IN CLOB,   output IN OUT NOCOPY CLOB);

  PROCEDURE execute(cmd IN STRING);
  FUNCTION  interp(cmd IN string) RETURN clob;
  PROCEDURE interp_silent(cmd IN STRING);
  PROCEDURE infile(ifilename IN STRING);

  FUNCTION  eval_number(cmd IN STRING) RETURN NUMBER;
  FUNCTION  eval_text(cmd IN STRING) RETURN VARCHAR2;

  FUNCTION  olap_on RETURN BOOLEAN;
  FUNCTION  olap_running RETURN BOOLEAN;
  FUNCTION  olap_active RETURN BOOLEAN;

  PROCEDURE advise_rel(  relname    IN VARCHAR2, 
                         valueset   IN VARCHAR2,
                         pct        IN BINARY_INTEGER DEFAULT 20,
                         compressed IN BOOLEAN        DEFAULT FALSE);
  PROCEDURE advise_cube( aggmap     IN VARCHAR2, 
                         pct        IN BINARY_INTEGER DEFAULT 20,
                         compressed IN BOOLEAN        DEFAULT FALSE);

  PROCEDURE enable_access_tracking(objname IN VARCHAR2);
  PROCEDURE disable_access_tracking(objname IN VARCHAR2);
  PROCEDURE clean_access_tracking(objname IN VARCHAR2);

  NO_HIER                 CONSTANT BINARY_INTEGER := 0;
  MEASURE                 CONSTANT BINARY_INTEGER := 1;
  HIER_PARENTCHILD        CONSTANT BINARY_INTEGER := 2;
  HIER_LEVELS             CONSTANT BINARY_INTEGER := 3;
  HIER_SNOWFLAKE          CONSTANT BINARY_INTEGER := 4;

  PARTBY_DEFAULT          CONSTANT BINARY_INTEGER := 0;
  PARTBY_NONE             CONSTANT BINARY_INTEGER := 1;
  PARTBY_FORCE            CONSTANT BINARY_INTEGER := 2147483647;
 
  ADVICE_DEFAULT          CONSTANT BINARY_INTEGER := 0;
  ADVICE_FAST             CONSTANT BINARY_INTEGER := 1;
  ADVICE_FULL             CONSTANT BINARY_INTEGER := 2;
  ADVICE_NOSAMPLE         CONSTANT BINARY_INTEGER := 3;

  PROCEDURE sparsity_advice_table(tblname IN     VARCHAR2 DEFAULT NULL);

  PROCEDURE add_dimension_source(dimname  IN      VARCHAR2,
                                 colname  IN      VARCHAR2,
                                 sources  IN OUT  dbms_aw$_dimension_sources_t,
                                 srcval   IN      VARCHAR2 DEFAULT NULL,
                                 dimtype  IN      NUMBER DEFAULT NO_HIER,
                                 hiercols IN      dbms_aw$_columnlist_t
                                          DEFAULT NULL,
                                 partby   IN      NUMBER
                                          DEFAULT PARTBY_DEFAULT);

  PROCEDURE advise_sparsity(fact       IN      VARCHAR2,
                            cubename   IN      VARCHAR2,
                            dimsources IN      dbms_aw$_dimension_sources_t,
                            advmode    IN      BINARY_INTEGER
                                       DEFAULT ADVICE_DEFAULT,
                            partby     IN      BINARY_INTEGER
                                       DEFAULT PARTBY_DEFAULT,
                            advtable   IN      VARCHAR2 DEFAULT NULL);

  FUNCTION advise_dimensionality(cubename   IN     VARCHAR2,
                                 sparsedfn     OUT VARCHAR2,
                                 sparsename IN     VARCHAR2 DEFAULT NULL,
                                 partnum    IN     NUMBER DEFAULT 1,
                                 advtable   IN     VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;
  PROCEDURE advise_dimensionality(output        OUT NOCOPY CLOB,
                                  cubename   IN     VARCHAR2,
                                  sparsename IN     VARCHAR2 DEFAULT NULL,
                                  dtype      IN     VARCHAR2 DEFAULT 'NUMBER',
                                  advtable   IN     VARCHAR2 DEFAULT NULL);
  FUNCTION advise_partitioning_dimension(cubename IN VARCHAR2,
                                    dimsources IN dbms_aw$_dimension_sources_t,
                                    advtable   IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;
  FUNCTION advise_partitioning_level(cubename  IN VARCHAR2,
                                    dimsources IN dbms_aw$_dimension_sources_t,
                                    advtable   IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2;

  PROCEDURE aw_update(name     IN VARCHAR2 DEFAULT NULL);
  PROCEDURE aw_update(schema   IN VARCHAR2,
                      name     IN VARCHAR2);

  PROCEDURE aw_attach(name     IN VARCHAR2,
                      forwrite IN BOOLEAN  DEFAULT FALSE,
                      createaw IN BOOLEAN  DEFAULT FALSE,
                      attargs  IN VARCHAR2 DEFAULT NULL,
                      tbspace  IN VARCHAR2 DEFAULT NULL);
  PROCEDURE aw_attach(schema   IN VARCHAR2,
                      name     IN VARCHAR2,
                      forwrite IN BOOLEAN  DEFAULT FALSE,
                      createaw IN BOOLEAN  DEFAULT FALSE,
                      attargs  IN VARCHAR2 DEFAULT NULL,
                      tbspace  IN VARCHAR2 DEFAULT NULL);

  PROCEDURE aw_detach(name     IN VARCHAR2);

  PROCEDURE aw_detach(schema   IN VARCHAR2,
                      name     IN VARCHAR2);

  PROCEDURE aw_create(name     IN VARCHAR2,
                      tbspace  IN VARCHAR2 DEFAULT NULL,
                      partnum  IN NUMBER   DEFAULT NULL);

  PROCEDURE aw_create(schema   IN VARCHAR2,
                      name     IN VARCHAR2,
                      tbspace  IN VARCHAR2 DEFAULT NULL,
                      partnum  IN NUMBER   DEFAULT NULL);

  PROCEDURE aw_copy(oldname IN VARCHAR2,
                    newname IN VARCHAR2,
                    newtablespace IN VARCHAR2 DEFAULT NULL,
                    partnum IN NUMBER DEFAULT NULL);

  PROCEDURE aw_copy(oldschema IN VARCHAR2,
                    oldname IN VARCHAR2,
                    newname IN VARCHAR2,
                    newtablespace IN VARCHAR2 DEFAULT NULL,
                    partnum IN NUMBER DEFAULT NULL);

  PROCEDURE aw_delete(name     IN VARCHAR2);
  PROCEDURE aw_delete(schema   IN VARCHAR2,
                      name     IN VARCHAR2);

  PROCEDURE aw_rename(inname   IN VARCHAR2,
                      outname  IN VARCHAR2);

  FUNCTION  aw_tablespace(schema IN VARCHAR2,
                          name   IN VARCHAR2) RETURN VARCHAR2;

  FUNCTION  aw_tablespace(name   IN VARCHAR2) RETURN VARCHAR2;

  FUNCTION  aw_is_system(schema IN VARCHAR2,
                         name   IN VARCHAR2) RETURN BOOLEAN;

  TYPE eif_t         IS TABLE OF BLOB NOT NULL;
  TYPE eif_objlist_t IS TABLE OF VARCHAR2(100);

  -- Enumerated Types for the datadfns param to EIF import
  EIFIMP_DATA        CONSTANT BINARY_INTEGER := 1;
  EIFIMP_DEFINES     CONSTANT BINARY_INTEGER := 2;
  EIFIMP_DFNS        CONSTANT BINARY_INTEGER := EIFIMP_DEFINES;
  EIFIMP_DATADEFINES CONSTANT BINARY_INTEGER := 3;
  EIFIMP_DATADFNS    CONSTANT BINARY_INTEGER := EIFIMP_DATADEFINES;

  AWNAME_IS_NULL EXCEPTION;

  FUNCTION  eif_blob_out(name IN VARCHAR2,
                         objlist IN eif_objlist_t DEFAULT NULL,
                         api IN BOOLEAN DEFAULT TRUE) RETURN BLOB;
  FUNCTION  eif_blob_out(schema IN VARCHAR2, name IN VARCHAR2,
                         objlist IN eif_objlist_t DEFAULT NULL,
                         api IN BOOLEAN DEFAULT TRUE) RETURN BLOB;
  PROCEDURE eif_blob_in(name IN VARCHAR2, implob IN BLOB,
                        datadfns IN BINARY_INTEGER DEFAULT EIFIMP_DATA,
                        objlist  IN eif_objlist_t  DEFAULT NULL,
                        api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_blob_in(schema IN VARCHAR2, name IN VARCHAR2, implob IN BLOB,
                        datadfns IN BINARY_INTEGER DEFAULT EIFIMP_DATA,
                        objlist  IN eif_objlist_t  DEFAULT NULL,
                        api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_out(name IN VARCHAR2, expeif OUT eif_t,
                    objlist IN eif_objlist_t DEFAULT NULL,
                    dfns IN BOOLEAN DEFAULT FALSE,
                    api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_out(schema IN VARCHAR2, name IN VARCHAR2, expeif OUT eif_t,
                    objlist IN eif_objlist_t DEFAULT NULL,
                    dfns IN BOOLEAN DEFAULT FALSE,
                    api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_in(name IN VARCHAR2, impeif IN eif_t,
                   datadfns IN BINARY_INTEGER DEFAULT EIFIMP_DATA,
                   objlist IN eif_objlist_t DEFAULT NULL,
                   api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_in(schema IN VARCHAR2, name IN VARCHAR2, impeif IN eif_t,
                   datadfns IN BINARY_INTEGER DEFAULT EIFIMP_DATA,
                   objlist IN eif_objlist_t DEFAULT NULL,
                   api IN BOOLEAN DEFAULT TRUE);
  PROCEDURE eif_delete(eif IN OUT eif_t);
  FUNCTION  get_obj_protect RETURN BOOLEAN;

  aw_changed_error CONSTANT NUMBER := -20003;
  awname_null_error CONSTANT NUMBER := -20004;
  has_schema_error CONSTANT NUMBER := -20005;
  bad_snowflake_error CONSTANT NUMBER := -20006;

  PROCEDURE convert(awname IN VARCHAR2);
  PROCEDURE convert(oldname IN VARCHAR2, newname IN VARCHAR2,
                    newtablespace IN VARCHAR2 DEFAULT NULL);

  en_tbs_error CONSTANT NUMBER := -20001;
  PROCEDURE move_awmeta(dest_tbs IN VARCHAR2);
  
  FUNCTION prop_val(rid IN ROWID) RETURN VARCHAR2;
  FUNCTION olap_type(otype IN NUMBER) RETURN VARCHAR2;
  FUNCTION prop_clob(rid IN ROWID) RETURN CLOB;
  FUNCTION prop_len(rid IN ROWID) RETURN NUMBER;
  PROCEDURE gather_stats;
  FUNCTION in_aw_cleanup RETURN BOOLEAN;
  PROCEDURE VALIDATE_AW_NAME(awname IN VARCHAR2);
  PROCEDURE VALIDATE_SCHEMA_NAME(schema IN VARCHAR2);
  PROCEDURE PARSE_AW_NAME(inschema IN VARCHAR2, inawname in VARCHAR2,
                          schema OUT VARCHAR2, awname OUT VARCHAR2,
                          defschema OUT BOOLEAN);
  PROCEDURE PARSE_SCHEMA_NAME(inschema IN VARCHAR2, schema OUT VARCHAR2,
                              defschema OUT BOOLEAN);

  -- Internal types, not for user consumption
  TYPE loblineiter_t IS RECORD (
    mylob   CLOB,
    loc     NUMBER,
    clength NUMBER,
    cmax    NUMBER,
    linemax NUMBER);

END dbms_aw; 
/
show errors;

-- Give execute privileges
CREATE OR REPLACE PUBLIC SYNONYM dbms_aw FOR sys.dbms_aw
/
GRANT EXECUTE ON dbms_aw TO PUBLIC
/

@@?/rdbms/admin/sqlsessend.sql

OHA YOOOO