MINI MINI MANI MO
rem Copyright (c) 1997, 2017, Oracle and/or its affiliates.
rem All rights reserved.
rem NAME
rem dricon.pkh - DR Internal CONstraint management
rem DESCRIPTION
rem This package contains internal code to check for unique
rem key constraints and such
rem
rem NOTES
rem
rem BEGIN SQL_FILE_METADATA
rem SQL_SOURCE_FILE: ctx_src_2/src/dr/admin/dricon.pkh
rem SQL_SHIPPED_FILE: ctx/admin/dricon.pkh
rem SQL_PHASE: DRICON_PKH
rem SQL_STARTUP_MODE: NORMAL
rem SQL_IGNORABLE_ERRORS: NONE
rem SQL_CALLING_FILE: ctx/admin/ctxpkh.sql
rem END SQL_FILE_METADATA
rem
rem MODIFIED (MM/DD/YY)
rem snetrava 03/22/17 - Added user id to set_store_obj signature
rem surman 01/23/15 - 20411134: Add SQL metadata tags
rem surman 03/15/13 - 16473661: Common start and end scripts
rem gkaminag 09/29/05 - cdi indexing
rem daliao 10/16/02 - add exist_tab
rem gkaminag 02/05/02 - bug 2213345: handle XMLType detail columns.
rem salpha 06/26/00 - ctxrule implementation
rem gkaminag 02/23/00 - ctxcat implementation
rem gkaminag 10/11/99 - keyless index
rem gkaminag 06/21/99 - format and charset columns
rem gkaminag 06/09/99 - language column
rem ehuang 03/18/99 - add get_type_data_type
rem ehuang 11/04/98 - set_store_obj to take idx_owner
rem gkaminag 05/05/98 - add find_pk
rem ehuang 03/30/98 - mv validate_pol to driload
rem gkaminag 03/18/98 - put datastore logic here
rem ehuang 01/25/98 - expose get_column_type
rem gkaminag 12/09/97 - text column length
rem gkaminag 12/04/97 - remove lineno parameters
rem dyu 08/21/97 - workaround 532862
rem ehuang 04/28/97 - add validate_pol
rem gkaminag 04/11/97 - creation
@@?/rdbms/admin/sqlsessstart.sql
create or replace package dricon as
/*---------------------------- set_datatype_obj ------------------------*/
/*
NAME
set_datatype_obj
DESCRIPTION
calculates which datatype object is needed
RETURNS
names of datatype preference and obj_id
*/
PROCEDURE set_datatype_obj(
p_texttype in number,
p_datatype_pref out varchar2,
p_datatype_id out number
);
/*---------------------------- set_store_obj ------------------------*/
/*
NAME
set_store_obj
DESCRIPTION
calculates which datastore objects are needed
RETURNS
names of store interface and store type to use
*/
PROCEDURE set_store_obj(
p_dstore_pref in varchar2,
p_texttype in number,
p_idx_owner in varchar2,
p_key_name in varchar2,
p_storex_pref out varchar2,
p_datatype_pref out varchar2,
p_idx_owner_id in number default NULL
);
/*---------------------------- get_data_type ------------------------*/
/*
NAME
get_data_type
DESCRIPTION
simple way to get the data type of a table column
RETURNS
datatype as a word. type_num is the datatype as the oracle type id.
NOTES
all arguments should be UPPER'ed first
*/
FUNCTION get_data_type(
p_owner IN varchar2,
p_tabname IN varchar2,
p_colname IN varchar2,
type_num OUT number,
dtlength OUT number,
dtscale OUT number
) return varchar2;
/*----------------------- get_type_data_type ------------------------*/
/*
NAME
get_type_data_type
DESCRIPTION
get the data type of a type table column
RETURNS
datatype as a word. type_num is the datatype as the oracle type id.
NOTES
all arguments should be UPPER'ed first
*/
PROCEDURE get_type_data_type(
p_typename IN varchar2, -- type name with owner prefix
p_colname IN varchar2, -- text column name with no owner prefix
p_typenum OUT number, -- text column datatype
p_dtlen OUT number -- text column data length
);
/*----------------------------- validate_tab -------------------------------*/
/*
NAME
validate_tab - VALIDATE TABle
DESCRIPTION
validate table exists
NOTES
Assumes that p_owner, p_table_name are NON-NULL
*/
PROCEDURE validate_tab(
owner in varchar2, -- owner of table
tabname in varchar2 -- table name
);
/* ----------------- test if the table exists ------------------------ */
/* NAME
exist_tab - test if table exists
DESCRIPTION
return true when table exists,
false when table does not exist
NOTES
Assumes that p_owner, p_table_name are NON-NULL
*/
FUNCTION exist_tab(
l_owner IN VARCHAR2,
l_tabname IN VARCHAR2) return boolean;
/*----------------------- validate_text_column ----------------------------*/
/*
NAME
validate_text_column
DESCRIPTION
validate column exists, get the type and length, and make sure
we can index this type.
NOTES
Assumes that table exists
*/
procedure validate_text_column(
p_idx_type in number,
owner in varchar2, -- owner of table
tabname in varchar2, -- table name
column_name in varchar2,
coltype out number,
collen out number
);
/*----------------------- validate_meta_column ----------------------------*/
/*
NAME
validate_meta_column
DESCRIPTION
validate column exists, ensure type, normalize name
NOTES
Assumes that table exists
*/
PROCEDURE validate_meta_column(
p_owner in varchar2,
p_tabname in varchar2,
p_langcol in varchar2,
p_type_error in number,
p_norm in out varchar2
);
/*--------------------- get_primary_key -------------------------------*/
/*
NAME
get_primary_key
DESCRIPTION
detect the primary key columns, determine their type and number
*/
PROCEDURE get_primary_key(
p_owner in varchar2,
p_table_name in varchar2,
keyname out varchar2,
keytype out number
);
/*----------------------- validate_cdi ----------------------------*/
/*
NAME
validate_cdi
DESCRIPTION
validate column types, lengths, etc.
*/
PROCEDURE validate_cdi(
p_owner in varchar2,
p_table_name in varchar2,
cols in sys.odcicolinfolist,
collen in out nocopy dr_def.id_tab,
coltype in out nocopy dr_def.name_tab,
coltype# in out nocopy dr_def.id_tab,
p_secgrp in varchar2
);
end dricon;
/
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO