MINI MINI MANI MO
Rem
Rem $Header: rdbms/admin/catxtbix.sql /main/23 2014/02/20 12:46:25 surman Exp $
Rem
Rem catxtbix.sql
Rem
Rem Copyright (c) 2004, 2014, Oracle and/or its affiliates.
Rem All rights reserved.
Rem
Rem NAME
Rem catxtbix.sql - XMLTableIndex related schema objects
Rem
Rem DESCRIPTION
Rem This script creates the views, packages, index types, operators and
Rem indexes required for supporting the XMLTableIndex
Rem
Rem NOTES
Rem This script should be run as "XDB".
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/catxtbix.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/catxtbix.sql
Rem SQL_PHASE: CATXTBIX
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catqm_int.sql
Rem END SQL_FILE_METADATA
Rem
Rem MODIFIED (MM/DD/YY)
Rem surman 01/22/14 - 13922626: Update SQL metadata
Rem qyu 03/18/13 - Common start and end scripts
Rem traney 04/05/11 - 35209: long identifiers dictionary upgrade
Rem juding 07/15/10 - bug 9903850: change indexes for xdb.xdb$xtab,
Rem xdb.xdb$xtabnmsp, xdb.xdb$xtabcols
Rem thbaby 06/08/10 - add segattrs column to xdb.xdb$xtab
Rem thbaby 02/26/10 - add depgrppos column
Rem thbaby 02/25/10 - add grppos column to xdb$xtab
Rem thbaby 05/21/09 - remove xtimetadata_pkg
Rem sipatel 09/16/08 - #(7414934) - change schema from sys to xdb
Rem thbaby 07/30/08 - disable xmltableindex indextype
Rem bhammers 10/30/07 - change ODCIIndexGetMetadata for imp/exp
Rem deactivate ODCIIndexUtilGetTableNames
Rem added xtimetadata_pkg package
Rem hxzhang 03/18/08 - coltype to varchar2(100)
Rem shvenugo 10/04/07 - partitioning
Rem hxzhang 08/27/07 - add add/drop column
Rem hxzhang 05/16/07 - change xpath to varchar2(4000)
Rem bhammers 04/19/07 - add flag for orig col type
Rem hxzhang 06/26/06 - add group#
Rem hxzhang 06/06/06 - add flag column to xtabcols
Rem rburns 05/05/06 - rename script
Rem hxzhang 12/14/05 - Created
@@?/rdbms/admin/sqlsessstart.sql
declare
exist number;
sys_exist number;
begin
select count(*) into exist from DBA_TABLES where table_name = 'XDB$XTAB'
and owner = 'XDB';
if exist = 0 then
select count(*) into sys_exist from DBA_TABLES where table_name = 'XDB$XTAB'
and owner = 'SYS';
if sys_exist = 1 then
begin
execute immediate
'drop library sys.xmltableindex_lib force';
exception
when others then null;
end;
begin
execute immediate
'drop table sys.xdb$xtab force';
exception
when others then null;
end;
begin
execute immediate
'drop table sys.xdb$xtabnmsp force';
exception
when others then null;
end;
begin
execute immediate
'drop table sys.xdb$xtabcols force';
exception
when others then null;
end;
end if;
execute immediate
'create table xdb.xdb$xtab (
idxobj# number not null, -- object # of XMLTableIndex
groupName NVARCHAR2(128) not null, -- group name of XMLTableIndex
xmltabobj# number not null, -- object # of XML TABLE
ptabobj# number, -- object # of parent table
xpath VARCHAR2(4000) not null, -- row source
xquery clob, -- xquery row source
flags number,
parameters XMLType,
grppos number, -- group position
depgrppos number, -- dependent group position
segattrs varchar2(4000), -- segment attributes and
-- table properties
constraint xdb$xtabpk primary key (idxobj#,groupName,xmltabobj#)) xmltype column parameters store as CLOB';
execute immediate
'create index xdb.xdb$idxxtab_1 on xdb.xdb$xtab(idxobj#, groupname, ptabobj#)';
execute immediate
'create index xdb.xdb$idxxtab_2 on xdb.xdb$xtab(idxobj#, depgrppos, xmltabobj#)';
execute immediate
'create table xdb.xdb$xtabnmsp (
idxobj# number not null, -- object # of XMLTableIndex
groupName NVARCHAR2(128) not null, -- group name of XMLTableIndex
xmltabobj# number not null, -- object # of XMLTable
prefix NVARCHAR2(128), -- namespace prefix
namespace NVARCHAR2(2000), -- namespace or xpath
flags number not null)'; -- 0x01 NAMESPACE
execute immediate
'create index xdb.xdb$idxtabnmsp_1 on xdb.xdb$xtabnmsp(idxobj#, groupname, xmltabobj#, flags)';
execute immediate
'create table xdb.xdb$xtabcols (
idxobj# number not null, -- object # of XMLTableIndex
groupName NVARCHAR2(128) not null, -- group name of XMLTableIndex
xmltabobj# number not null, -- object # of XMLTable
colname NVARCHAR2(2000) not null, -- column name
coltype NVARCHAR2(100) not null, -- column type
xpath VARCHAR2(4000) not null, -- xpath
flags number not null)'; -- flags
execute immediate
'create index xdb.xdb$idxtabcols_1 on xdb.xdb$xtabcols(idxobj#, groupname, xmltabobj#)';
end if;
end;
/
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO