MINI MINI MANI MO

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

Rem
Rem $Header: rdbms/admin/dbmsodbo.sql /main/8 2017/09/25 01:53:16 sshringa Exp $
Rem
Rem dbmsodbo.sql
Rem
Rem Copyright (c) 2013, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      dbmsodbo.sql - Multi-Dimensional Sql ODBO package for MDX support
Rem
Rem    DESCRIPTION
Rem      PL/SQL definitions to support OLE DB for MDX
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    sshringa    09/08/17 - Adding start/end markers for rti-20225108
Rem    mstasiew    12/18/15 - add property_content_type, property_origin
Rem    sfeinste    12/04/15 - Bug 22029736: remove old interfaces
Rem    sfeinste    10/09/15 - Add query_properties to get_schema_rowset
Rem    mstasiew    07/17/15 - Bug 20777735 add caption to odbo_function
Rem    raeburns    06/18/15 - Use FORCE for types with only type dependents
Rem    mstasiew    09/19/14 - function schema rowset columns
Rem                           remove getFunctions, get_functions
Rem    sfeinste    09/15/14 - Rename MDS -> HCS
Rem    beiyu       06/30/14 - Add mdx_strip_component
Rem    mstasiew    07/07/14 - logging for schema rowsets,
Rem                           make get_members_schema_rowset private
Rem    beiyu       06/23/14 - Add get_mdx_function_names, get_functions
Rem    ddedonat    05/20/14 - Added exceptions 18259 and 18260
Rem    mstasiew    04/29/14 - remove test_mdx, test_mdx_parser
Rem    mstasiew    04/09/14 - remove validate_cube, now done at ddl time
Rem    ddedonat    03/27/14 - Added functions and procedures to support MDX schema
Rem                           rowset metadata views and schema rowset processing
Rem                           Added call to catmdsx.sql to create MDX Schema
Rem                           Rowset Metadata Views
Rem    sfeinste    03/20/14 - change test_mdx to be function
Rem    mstasiew    03/14/14 - validate_cube
Rem    mstasiew    03/12/14 - mdx_datatype
Rem    beiyu       02/26/14 - add test_mdx_parser to only parse mdx query and 
Rem                           change NVARCHAR to VARCHAR for mdx string argument
Rem    sfeinste    03/11/14 - Add old interface as wrappers since provider is
Rem                           still using that interface
Rem    dbardwel    02/25/14 - add object types and procedures for getting
Rem                           MDX keywords and property values
Rem    sfeinste    02/15/14 - add get_axis_data, get_cell_data, and close
Rem                           Also add queryProps to execute
Rem                           Also add odbo_*_sequence types
Rem    mstasiew    02/13/14 - add datatype to convert_format_string
Rem    mstasiew    01/31/14 - add convert_format_string, mdx_component_id
Rem    mstasiew    10/17/13 - created from mdsodbo.sql separated package
Rem                           header and package body
Rem    almurphy    09/22/13 - Change test_mdx to have single clob output
Rem    beiyu       08/26/13 - added execute procedure
Rem    beiyu       07/31/13 - moved from transaction glyon_mdxii
Rem
Rem    BEGIN SQL_FILE_METADATA 
Rem    SQL_SOURCE_FILE: rdbms/src/server/mds/sql/dbmsodbo.sql 
Rem    SQL_SHIPPED_FILE: 
Rem    SQL_PHASE: DBMSODBO
Rem    SQL_STARTUP_MODE: NORMAL 
Rem    SQL_IGNORABLE_ERRORS: NONE 
Rem    SQL_CALLING_FILE: 
Rem    END SQL_FILE_METADATA

@?/rdbms/admin/sqlsessstart.sql


REM Create a type and table of type for the MDX keywords for table function
CREATE OR REPLACE TYPE DBMS_MDX_ODBO_KEYWORD_R FORCE AS OBJECT(
    KEYWORD_NAME VARCHAR2(128))
/

CREATE OR REPLACE TYPE DBMS_MDX_ODBO_KEYWORD_T AS TABLE OF
    DBMS_MDX_ODBO_KEYWORD_R
/

REM Create a type and table for MDX function names
CREATE OR REPLACE TYPE DBMS_MDX_ODBO_FUNCTION_R FORCE AS OBJECT(
    FUNCTION_NAME VARCHAR2(128),
    CAPTION VARCHAR2(128),
    DESCRIPTION VARCHAR2(1000),
    PARAM_LIST VARCHAR2(1000),
    INTERFACE_NAME VARCHAR2(128),
    object VARCHAR2(128))
/

CREATE OR REPLACE TYPE DBMS_MDX_ODBO_FUNCTION_T AS TABLE OF
    DBMS_MDX_ODBO_FUNCTION_R
/

REM Create a type and table of type for MDX property values for table function
CREATE OR REPLACE TYPE DBMS_MDX_ODBO_PROPVAL_R FORCE AS OBJECT(
    PROPERTY_VALUE NUMBER)
/

CREATE OR REPLACE TYPE DBMS_MDX_ODBO_PROPVAL_T AS TABLE OF
    DBMS_MDX_ODBO_PROPVAL_R
/

GRANT EXECUTE ON DBMS_MDX_ODBO_KEYWORD_R TO PUBLIC;
GRANT EXECUTE ON DBMS_MDX_ODBO_KEYWORD_T TO PUBLIC;
GRANT EXECUTE ON DBMS_MDX_ODBO_FUNCTION_R TO PUBLIC;
GRANT EXECUTE ON DBMS_MDX_ODBO_FUNCTION_T TO PUBLIC;
GRANT EXECUTE ON DBMS_MDX_ODBO_PROPVAL_R TO PUBLIC;
GRANT EXECUTE ON DBMS_MDX_ODBO_PROPVAL_T TO PUBLIC;

CREATE OR REPLACE LIBRARY DBMS_HCS_LIB TRUSTED AS STATIC
/

CREATE OR REPLACE PACKAGE DBMS_MDX_ODBO AUTHID CURRENT_USER AS

  MDX_DATE CONSTANT VARCHAR2(8) := 'MDX_DATE';
  MDX_NUMBER CONSTANT VARCHAR2(10) := 'MDX_NUMBER';

  MDSCHEMA_ACTIONS CONSTANT BINARY_INTEGER := 1;
  MDSCHEMA_CUBES CONSTANT BINARY_INTEGER := 2;
  MDSCHEMA_DIMENSIONS CONSTANT BINARY_INTEGER := 3;
  MDSCHEMA_FUNCTIONS CONSTANT BINARY_INTEGER := 4;
  MDSCHEMA_HIERARCHIES CONSTANT BINARY_INTEGER := 5;
  MDSCHEMA_LEVELS CONSTANT BINARY_INTEGER := 6;
  MDSCHEMA_MEASURES CONSTANT BINARY_INTEGER := 7;
  MDSCHEMA_PROPERTIES CONSTANT BINARY_INTEGER := 8;
  MDSCHEMA_MEMBERS CONSTANT BINARY_INTEGER := 9;
  MDSCHEMA_SETS CONSTANT BINARY_INTEGER := 10;
  MDSCHEMA_ROWSET_MAX CONSTANT BINARY_INTEGER := 11;

  -- RDBMS bug (fixed in MAIN) prevents use of SMALLINT here
  --TYPE odbo_boolean_sequence  IS VARRAY(32767) OF SMALLINT;
  --TYPE odbo_short_sequence IS VARRAY(32767) OF SMALLINT;
  TYPE odbo_boolean_sequence IS VARRAY(32767) OF NUMBER;
  TYPE odbo_short_sequence IS VARRAY(32767) OF NUMBER;
  TYPE odbo_number_sequence IS VARRAY(32767) OF NUMBER;
  TYPE odbo_string_sequence IS VARRAY(32767) OF VARCHAR2(10922);
 
  INVALID_ROWSET_TYPE EXCEPTION;
      PRAGMA EXCEPTION_INIT(INVALID_ROWSET_TYPE, -18259);  

  INVALID_ROWSET_ARRAYS EXCEPTION;
      PRAGMA EXCEPTION_INIT(INVALID_ROWSET_ARRAYS, -18260);  

  INVALID_QRY_PROPS EXCEPTION;
      PRAGMA EXCEPTION_INIT(INVALID_QRY_PROPS, -18264);      
	  
  PROCEDURE execute(
    mdx_str IN VARCHAR2,
    query_properties IN odbo_string_sequence,
    column_axis OUT SYS_REFCURSOR, row_axis OUT SYS_REFCURSOR,
    page_axis OUT SYS_REFCURSOR, chapter_axis OUT SYS_REFCURSOR,
    section_axis OUT SYS_REFCURSOR, slicer OUT SYS_REFCURSOR,
    mdx_info OUT CLOB, query_id OUT NUMBER);

  FUNCTION GET_MDX_DATE_TYPE RETURN VARCHAR2;
  FUNCTION GET_MDX_NUMBER_TYPE RETURN VARCHAR2;

  FUNCTION GET_MDSCHEMA_ACTIONS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_CUBES RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_DIMENSIONS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_FUNCTIONS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_HIERARCHIES RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_LEVELS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_MEASURES RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_PROPERTIES RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_MEMBERS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_SETS RETURN BINARY_INTEGER;
  FUNCTION GET_MDSCHEMA_ROWSET_MAX RETURN BINARY_INTEGER;

  PROCEDURE get_axis_data(
    query_id IN NUMBER,
    axis_index IN NUMBER,
    axis_data OUT SYS_REFCURSOR);

  PROCEDURE get_cell_data(
    query_id IN NUMBER,
    cell_range IN odbo_number_sequence,
    cell_data OUT SYS_REFCURSOR);

  PROCEDURE close(query_id IN NUMBER);

  FUNCTION convert_format_string (
    orcl_fmt_str         IN VARCHAR2,
    datatype             IN VARCHAR2)
  RETURN VARCHAR2;

  FUNCTION mdx_component_id (
    component1 	 IN VARCHAR2,
    component2   IN VARCHAR2 DEFAULT NULL,
    component3   IN VARCHAR2 DEFAULT NULL,
    component4   IN VARCHAR2 DEFAULT NULL)
  RETURN VARCHAR2;

  FUNCTION mdx_strip_component (
    id           IN VARCHAR2)
  RETURN VARCHAR2;

  FUNCTION get_mdx_keyword_names
  return sys.dbms_mdx_odbo_keyword_t
  pipelined;

  FUNCTION get_mdx_function_names
  return sys.dbms_mdx_odbo_function_t
  pipelined;

  FUNCTION get_mdx_property_values
  return sys.dbms_mdx_odbo_propval_t
  pipelined;

  PROCEDURE get_dso_properties(mdpropvals OUT odbo_short_sequence);

  PROCEDURE get_keywords(keywords OUT VARCHAR2);
 
  PROCEDURE get_schema_rowset(
      rowset_type IN NUMBER,
      restrictions IN odbo_string_sequence,
      empty IN odbo_boolean_sequence,
      rowset OUT SYS_REFCURSOR,
      query_properties IN odbo_string_sequence);
  
  PROCEDURE close_schema_rowset(
      rowset_type IN NUMBER,
	  rowset In OUT SYS_REFCURSOR);

  -- Function to return Dimension Types  
  FUNCTION mdx_dimension_type(dimtype IN VARCHAR2)
      RETURN INTEGER DETERMINISTIC;
  
  -- Function to return Measure Cardinality  
  FUNCTION mdx_get_measure_cardinality(
      cubeowner IN VARCHAR2,
	  cubename IN VARCHAR2)	
      RETURN INTEGER DETERMINISTIC;

  -- Function to return Dimension Cardinality  
  FUNCTION mdx_get_dimension_cardinality(
      cubeowner IN VARCHAR2,
	  cubename IN VARCHAR2,
	  dimalias IN VARCHAR2)
      RETURN INTEGER DETERMINISTIC;

  -- Function to return Level Cardinality  
  FUNCTION mdx_get_level_cardinality(
      cubeowner IN VARCHAR2,
	  cubename IN VARCHAR2,
	  dimalias IN VARCHAR2,
	  hierarchyalias IN VARCHAR2,
	  levelname IN VARCHAR2)
      RETURN INTEGER DETERMINISTIC;	

  -- Function to return Hierarchy Cardinality  
  FUNCTION mdx_get_hierarchy_cardinality(
      cubeowner IN VARCHAR2,
	  cubename IN VARCHAR2,
	  dimalias IN VARCHAR2,
	  hierarchyalias IN VARCHAR2)
      RETURN INTEGER DETERMINISTIC;
	
  -- Function to return Hierarchy Structures  
  FUNCTION mdx_hierarchy_structure(structuretype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;
	
  -- Function to return Hierarchy and Level Origins  
  FUNCTION mdx_origin(origintype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;

  -- Function to return Hierarchy Instance Selections  
  FUNCTION mdx_hierarchy_inst_selection(selectiontype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;
	
  -- Function to return Level Unique Settings  
  FUNCTION mdx_level_unique_settings(type IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;
	
  -- Function to return Measure Aggregation Value  
  FUNCTION mdx_measure_aggregator(aggtype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;		
	
  -- Function to return Property Types  
  FUNCTION mdx_property_type(propertytype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;			

  -- Function to return Property Content Types  
  FUNCTION mdx_property_content_type(propertytype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;

  -- Function to return Property Origins  
  FUNCTION mdx_property_origin(propertytype IN VARCHAR2)
    RETURN INTEGER DETERMINISTIC;

  FUNCTION mdx_datatype (orclDt IN VARCHAR2)
  RETURN NUMBER DETERMINISTIC;

END;
/

show errors;

-- Synonyms and grants
CREATE OR REPLACE PUBLIC SYNONYM DBMS_MDX_ODBO FOR sys.DBMS_MDX_ODBO;
GRANT EXECUTE ON DBMS_MDX_ODBO TO PUBLIC;

Rem *********************************************************************
Rem Create MDX Schema Rowset Metadata Views
Rem *********************************************************************
@@cathcsx.sql

@?/rdbms/admin/sqlsessend.sql


OHA YOOOO