MINI MINI MANI MO
@@?/rdbms/admin/sqlsessstart.sql
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' CREATE TABLE MDSYS.SDO_INDEX_AGGREGATES_TABLE
(SDO_INDEX_OWNER varchar2(32),
SDO_INDEX_NAME varchar2(32),
SDO_INDEX_OID varchar2(32),
SDO_NUMTILES NUMBER,
SDO_RTREE_NUM_NODES NUMBER,
SDO_NUM_ROWS NUMBER,
SDO_NUM_BLKS NUMBER,
CONSTRAINT unique_aggregate
PRIMARY KEY (SDO_INDEX_OWNER, SDO_INDEX_NAME)) ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_AGGREGATES_TABLE
modify (SDO_INDEX_OWNER varchar2(130),
SDO_INDEX_NAME varchar2(130)) ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' CREATE TABLE MDSYS.SDO_INDEX_METADATA_TABLE
(SDO_INDEX_OWNER varchar2(32),
SDO_INDEX_TYPE varchar2(32),
SDO_LEVEL NUMBER,
SDO_NUMTILES NUMBER,
SDO_MAXLEVEL NUMBER,
SDO_COMMIT_INTERVAL NUMBER,
SDO_INDEX_TABLE varchar2(32),
SDO_INDEX_NAME varchar2(32),
SDO_INDEX_PRIMARY NUMBER,
SDO_TSNAME varchar2(32),
SDO_COLUMN_NAME varchar2(2048),
SDO_RTREE_HEIGHT number,
SDO_RTREE_NUM_NODES number,
SDO_RTREE_DIMENSIONALITY number,
SDO_RTREE_FANOUT number,
SDO_RTREE_ROOT varchar2(32),
SDO_RTREE_SEQ_NAME varchar2(32),
SDO_FIXED_META RAW(255),
SDO_TABLESPACE varchar2(32),
SDO_INITIAL_EXTENT varchar2(32),
SDO_NEXT_EXTENT varchar2(32),
SDO_PCTINCREASE NUMBER,
SDO_MIN_EXTENTS NUMBER,
SDO_MAX_EXTENTS NUMBER) ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE
modify (SDO_COLUMN_NAME varchar2(2048)) ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add ( SDO_INDEX_DIMS number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add ( SDO_LAYER_GTYPE varchar2(32)) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_RTREE_PCTFREE number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_INDEX_PARTITION varchar2(32)) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')8]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_PARTITIONED number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')9]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_RTREE_QUALITY number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')10]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_INDEX_VERSION number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')11]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_INDEX_GEODETIC varchar2(8)) ' ;
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')12]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE add
( SDO_INDEX_STATUS varchar2(32)) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')13]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' update MDSYS.sdo_index_metadata_table set SDO_INDEX_STATUS = '||
'''VALID'' where SDO_INDEX_STATUS is NULL';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')14]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'update MDSYS.sdo_index_metadata_table set SDO_INDEX_DIMS = 2 ' ||
' where SDO_INDEX_GEODETIC = ''TRUE'' and SDO_RTREE_DIMENSIONALITY=3';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')15]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' alter table MDSYS.sdo_index_metadata_table add
(SDO_NL_INDEX_TABLE varchar2(33)) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')16]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' alter table MDSYS.sdo_index_metadata_table add
(SDO_DML_BATCH_SIZE number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')17]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'alter table MDSYS.sdo_index_metadata_table add
(SDO_RTREE_ENT_XPND number) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')18]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'ALTER TABLE MDSYS.sdo_index_metadata_table
ADD (SDO_ROOT_MBR mdsys.sdo_geometry) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')19]: ' || SQLERRM); RAISE;
end;
end;
/
declare
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' ALTER TABLE MDSYS.sdo_index_metadata_table ' ||
' ADD (SDO_NUM_ROWS NUMBER default null)' ;
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')20]: ' || SQLERRM); RAISE;
end;
end;
/
declare
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' ALTER TABLE MDSYS.sdo_index_metadata_table ' ||
' ADD (SDO_NUM_BLKS NUMBER default null)' ;
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')21]: ' || SQLERRM); RAISE;
end;
end;
/
declare
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' ALTER TABLE MDSYS.sdo_index_metadata_table ' ||
' ADD (SDO_OPTIMIZED_NODES NUMBER default null)' ;
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')22]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
declare
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' ALTER TABLE MDSYS.sdo_index_metadata_table ' ||
' ADD (SDO_TABLE_NAME VARCHAR2(130) default null)' ;
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')23]: ' || SQLERRM); RAISE;
end;
end;
/
declare
column_exists exception;
pragma exception_init(column_exists, -01430);
begin
begin
execute immediate
' Alter table MDSYS.SDO_INDEX_METADATA_TABLE
modify (SDO_INDEX_OWNER varchar2(130),
SDO_INDEX_TABLE varchar2(130),
SDO_NL_INDEX_TABLE varchar2(131),
SDO_INDEX_NAME varchar2(130),
SDO_TSNAME varchar2(130),
SDO_RTREE_SEQ_NAME varchar2(130),
SDO_TABLESPACE varchar2(130),
SDO_INDEX_PARTITION varchar2(130)) ';
exception
when column_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')24]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
create or replace view mdsys.my_sdo_index_metadata as
select SDO_INDEX_OWNER, SDO_INDEX_TYPE,
SDO_LEVEL, SDO_NUMTILES, SDO_MAXLEVEL,
SDO_COMMIT_INTERVAL, SDO_INDEX_TABLE,
SDO_INDEX_NAME, SDO_INDEX_PRIMARY,
SDO_TSNAME, SDO_COLUMN_NAME,
SDO_RTREE_HEIGHT, SDO_RTREE_NUM_NODES,
SDO_RTREE_DIMENSIONALITY, SDO_RTREE_FANOUT,
SDO_RTREE_ROOT, SDO_RTREE_SEQ_NAME,
SDO_FIXED_META, SDO_TABLESPACE,
SDO_INITIAL_EXTENT, SDO_NEXT_EXTENT,
SDO_PCTINCREASE, SDO_MIN_EXTENTS,
SDO_MAX_EXTENTS, SDO_INDEX_DIMS,
SDO_LAYER_GTYPE, SDO_RTREE_PCTFREE,
SDO_INDEX_PARTITION, SDO_PARTITIONED,
SDO_RTREE_QUALITY, SDO_INDEX_VERSION,
SDO_INDEX_GEODETIC, SDO_INDEX_STATUS,
SDO_NL_INDEX_TABLE,
SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,
SDO_TABLE_NAME,
SDO_ROOT_MBR
from MDSYS.SDO_INDEX_METADATA_TABLE
where sdo_index_owner = sys_context('userenv', 'CURRENT_USER');
create or replace view mdsys.user_sdo_index_metadata as
select SDO_INDEX_OWNER, SDO_INDEX_TYPE,
SDO_LEVEL, SDO_NUMTILES, SDO_MAXLEVEL,
SDO_COMMIT_INTERVAL, SDO_INDEX_TABLE,
SDO_INDEX_NAME, SDO_INDEX_PRIMARY,
SDO_TSNAME, SDO_COLUMN_NAME,
SDO_RTREE_HEIGHT, SDO_RTREE_NUM_NODES,
SDO_RTREE_DIMENSIONALITY, SDO_RTREE_FANOUT,
SDO_RTREE_ROOT, SDO_RTREE_SEQ_NAME,
SDO_FIXED_META, SDO_TABLESPACE,
SDO_INITIAL_EXTENT, SDO_NEXT_EXTENT,
SDO_PCTINCREASE, SDO_MIN_EXTENTS,
SDO_MAX_EXTENTS, SDO_INDEX_DIMS,
SDO_LAYER_GTYPE, SDO_RTREE_PCTFREE,
SDO_INDEX_PARTITION, SDO_PARTITIONED,
SDO_RTREE_QUALITY, SDO_INDEX_VERSION,
SDO_INDEX_GEODETIC, SDO_INDEX_STATUS,
SDO_NL_INDEX_TABLE,
SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,
SDO_NUM_ROWS, --- bug9743250
SDO_NUM_BLKS,
SDO_OPTIMIZED_NODES,
SDO_TABLE_NAME, --- bug21925692
SDO_ROOT_MBR --- bug2719909
from MDSYS.SDO_INDEX_METADATA_TABLE
where
(exists
(select index_name from sys.user_indexes
where index_name=sdo_index_name and
sdo_index_owner = sys_context('userenv', 'CURRENT_USER')));
create or replace view mdsys.all_sdo_index_metadata as
select SDO_INDEX_OWNER, SDO_INDEX_TYPE,
SDO_LEVEL, SDO_NUMTILES, SDO_MAXLEVEL, SDO_COMMIT_INTERVAL,
SDO_INDEX_TABLE, SDO_INDEX_NAME, SDO_INDEX_PRIMARY, SDO_TSNAME,
SDO_COLUMN_NAME, SDO_RTREE_HEIGHT, SDO_RTREE_NUM_NODES,
SDO_RTREE_DIMENSIONALITY, SDO_RTREE_FANOUT, SDO_RTREE_ROOT,
SDO_RTREE_SEQ_NAME, SDO_FIXED_META, SDO_TABLESPACE,
SDO_INITIAL_EXTENT, SDO_NEXT_EXTENT, SDO_PCTINCREASE,
SDO_MIN_EXTENTS, SDO_MAX_EXTENTS, SDO_INDEX_DIMS, SDO_LAYER_GTYPE,
SDO_RTREE_PCTFREE, SDO_INDEX_PARTITION, SDO_PARTITIONED,
SDO_RTREE_QUALITY, SDO_INDEX_VERSION, SDO_INDEX_GEODETIC,
SDO_INDEX_STATUS,
SDO_NL_INDEX_TABLE,
SDO_DML_BATCH_SIZE, SDO_RTREE_ENT_XPND,
SDO_NUM_ROWS, --- bug9743250
SDO_NUM_BLKS,
SDO_OPTIMIZED_NODES,
SDO_TABLE_NAME, --- bug21925692
SDO_ROOT_MBR --- bug2719909
from MDSYS.SDO_INDEX_METADATA_TABLE
where
(exists
(select index_name from SYS.all_indexes
where index_name=sdo_index_name and
owner = sdo_index_owner));
declare
table_not_found exception;
pragma exception_init(table_not_found, -00942);
begin
execute immediate 'DROP TABLE MDSYS.SDO_TTS_METADATA_TABLE FORCE';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM);
RAISE;
end;
/
SHOW ERRORS
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'CREATE TABLE MDSYS.SDO_INDEX_HISTOGRAM_TABLE
(SDO_INDEX_OBJNO NUMBER,
BKT_ID NUMBER,
NUM_MBRS NUMBER,
START1 NUMBER,
END1 NUMBER,
AVGMBRLEN1 NUMBER,
START2 NUMBER,
END2 NUMBER,
AVGMBRLEN2 NUMBER,
START3 NUMBER,
END3 NUMBER,
AVGMBRLEN3 NUMBER
)';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')25]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'CREATE INDEX MDSYS.SDO_INDEX_HISTOGRAM_TABLE_IDX ON
MDSYS.SDO_INDEX_HISTOGRAM_TABLE(SDO_INDEX_OBJNO, BKT_ID)';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')26]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
create or replace view mdsys.user_sdo_index_histogram as
select OBJECT_NAME SDO_INDEX_NAME,
BKT_ID, NUM_MBRS,
START1, END1, AVGMBRLEN1,
START2, END2, AVGMBRLEN2,
START3, END3, AVGMBRLEN3
from MDSYS.SDO_INDEX_HISTOGRAM_TABLE a, SYS.ALL_OBJECTS b
where a.sdo_index_objno = b.object_id
and b.owner = sys_context('userenv', 'CURRENT_USER')
order by SDO_INDEX_NAME, BKT_ID;
create or replace view mdsys.all_sdo_index_histogram as
select OBJECT_NAME SDO_INDEX_NAME,
BKT_ID, NUM_MBRS,
START1, END1, AVGMBRLEN1,
START2, END2, AVGMBRLEN2,
START3, END3, AVGMBRLEN3
from MDSYS.SDO_INDEX_HISTOGRAM_TABLE a, SYS.ALL_OBJECTS b
where a.sdo_index_objno = b.object_id
order by SDO_INDEX_NAME, BKT_ID;
grant read on mdsys.sdo_index_histogram_table to public;
create or replace public synonym sdo_index_histogram_table for
mdsys.sdo_index_histogram_table;
grant read on mdsys.user_sdo_index_histogram to public;
grant read on mdsys.all_sdo_index_histogram to public;
create or replace public synonym sdo_index_histogram for
mdsys.user_sdo_index_histogram;
create or replace public synonym user_sdo_index_histogram for
mdsys.user_sdo_index_histogram;
create or replace public synonym all_sdo_index_histogram for
mdsys.all_sdo_index_histogram;
commit;
declare
index_not_found exception;
pragma exception_init(index_not_found, -01418);
begin
begin
execute immediate
' drop index MDSYS.sdo_idx_mdata_idx';
exception
when index_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')27]: ' || SQLERRM); RAISE;
end;
end;
/
create index MDSYS.sdo_idx_mdata_idx on
mdsys.sdo_index_metadata_table(sdo_index_owner, SDO_INDEX_NAME, SDO_INDEX_PARTITION);
grant read on mdsys.user_sdo_index_metadata to public;
grant read on mdsys.my_sdo_index_metadata to public;
grant read on mdsys.all_sdo_index_metadata to public;
create or replace public synonym my_sdo_index_metadata for
mdsys.my_sdo_index_metadata;
create or replace public synonym sdo_index_metadata for
mdsys.user_sdo_index_metadata;
create or replace public synonym user_sdo_index_metadata for
mdsys.user_sdo_index_metadata;
create or replace public synonym all_sdo_index_metadata for
mdsys.all_sdo_index_metadata;
commit;
create or replace view mdsys.user_sdo_index_info as
select SDO_INDEX_NAME index_name, table_owner, table_name,
REPLACE(sdo_column_name, '"') column_name,
SDO_INDEX_TYPE, SDO_INDEX_TABLE, SDO_INDEX_STATUS
from mdsys.user_sdo_index_metadata,
sys.user_indexes
where index_name = sdo_index_name;
grant read on mdsys.user_sdo_index_info to public;
create or replace public synonym user_sdo_index_info for
mdsys.user_sdo_index_info;
create or replace view mdsys.all_sdo_index_info as
select SDO_INDEX_OWNER, SDO_INDEX_NAME index_name, table_owner, table_name,
REPLACE(sdo_column_name, '"') column_name,
SDO_INDEX_TYPE, SDO_INDEX_TABLE, SDO_INDEX_STATUS, SDO_INDEX_PARTITION
from mdsys.all_sdo_index_metadata, SYS.all_indexes
where index_name = sdo_index_name and owner=sdo_index_owner;
grant read on mdsys.all_sdo_index_info to public;
create or replace public synonym all_sdo_index_info for
mdsys.all_sdo_index_info;
declare
table_not_found exception;
pragma exception_init(table_not_found, -00942);
synonym_not_found exception;
pragma exception_init(synonym_not_found, -01432);
begin
begin
execute immediate
'DROP TABLE MDSYS.SDO_DIST_METADATA_TABLE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')28]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP TABLE MDSYS.SDO_TXN_JOURNAL ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')29]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP public synonym SDO_TXN_JOURNAL ';
exception
when synonym_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')30]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP TABLE MDSYS.SDO_TXN_JOURNAL_REG ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')31]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP TABLE MDSYS.SDO_TXN_JOURNAL_GTT ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')32]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP TABLE MDSYS.SDO_TXN_IDX_INSERTS ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')33]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
'DROP public synonym SDO_TXN_IDX_INSERTS ';
exception
when synonym_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')34]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_TXN_IDX_DELETES ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')35]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP public synonym SDO_TXN_IDX_DELETES ';
exception
when synonym_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')36]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_TXN_IDX_EXP_UPD_RGN ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')37]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP public synonym SDO_TXN_IDX_EXP_UPD_RGN ';
exception
when synonym_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtimd.sql(' || $$PLSQL_LINE || ')38]: ' || SQLERRM); RAISE;
end;
end;
/
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_TXN_JOURNAL_GTT
(SID NUMBER NOT NULL, -- not really used for GTT
SDO_TXN_IDX_ID varchar2(130) NOT NULL,
OPERATION number NOT NULL, -- delete=1/insert=2 operation
RID varchar2(24) NOT NULL,
INDEXPTNIDEN number NOT NULL, -- index partition identifier
TABLEPTNIDEN number NOT NULL, -- table partition identifier
START_1 binary_double,
END_1 binary_double,
START_2 binary_double,
END_2 binary_double,
START_3 binary_double,
END_3 binary_double,
START_4 binary_double,
END_4 binary_double,
primary key(sdo_txn_idx_id, indexptniden, operation, rid)
);
grant insert, delete, update, select on mdsys.sdo_txn_journal_gtt to public;
create or replace public synonym sdo_txn_journal_gtt
for mdsys.sdo_txn_journal_gtt;
DECLARE
stmt varchar2(4000);
tblspc varchar2(260);
ptn_clause varchar2(1000);
local_clause varchar2(1000);
block_size number;
e_no_feature EXCEPTION;
PRAGMA EXCEPTION_INIT(e_no_feature, -439);
e_block_size EXCEPTION;
PRAGMA EXCEPTION_INIT(e_block_size, -14520);
BEGIN
tblspc := 'SYSAUX';
ptn_clause := 'partition by range (sid) interval (50) ' ||
'(partition p1 values less than (50)) ';
local_clause := 'LOCAL';
for i in 1..2
loop
stmt :=
'CREATE TABLE MDSYS.SDO_TXN_JOURNAL_REG ' ||
'(SID NUMBER NOT NULL, ' ||
'SDO_TXN_IDX_ID varchar2(130) NOT NULL, ' ||
'OPERATION number NOT NULL, ' ||
'RID varchar2(24) NOT NULL, ' ||
'INDEXPTNIDEN number NOT NULL, ' ||
'TABLEPTNIDEN number NOT NULL, ' ||
'START_1 binary_double, ' ||
'END_1 binary_double, ' ||
'START_2 binary_double, ' ||
'END_2 binary_double, ' ||
'START_3 binary_double, ' ||
'END_3 binary_double, ' ||
'START_4 binary_double, ' ||
'END_4 binary_double ' ||
') ' ||
ptn_clause ||
'TABLESPACE ' || tblspc;
begin
execute immediate stmt;
exit;
exception
when e_no_feature then
ptn_clause := '';
local_clause := '';
when others then
MDERR.RAISE_MD_ERROR('MD','SDO',-13199, 'CREATE INDEX=' || SQLERRM);
end;
end loop;
stmt := 'select block_size from sys.dba_tablespaces ' ||
'where tablespace_name = ''SYSAUX'' ';
execute immediate stmt into block_size;
stmt := 'select tablespace_name from sys.dba_tablespaces ' ||
'where contents = ''PERMANENT'' ' ||
'and tablespace_name <> ''SYSTEM'' ' ||
'and status = ''ONLINE'' ' ||
'and block_size = :blk ' ||
'and rownum = 1 ' ||
'order by tablespace_name ';
begin
execute immediate stmt into tblspc using block_size;
exception
when others then
tblspc := 'SYSAUX';
end;
if (tblspc is not NULL) and (tblspc <> 'SYSAUX') then
dbms_output.put_line('Moving to tablespace ' || tblspc);
if ( local_clause = 'LOCAL' ) then
begin
stmt := 'ALTER TABLE "MDSYS"."SDO_TXN_JOURNAL_REG" MOVE PARTITION "P1" TABLESPACE ' || tblspc;
execute immediate stmt;
stmt := 'ALTER TABLE "MDSYS"."SDO_TXN_JOURNAL_REG" MODIFY DEFAULT ATTRIBUTES TABLESPACE ' || tblspc;
execute immediate stmt;
exception
when e_block_size then
NULL;
when others then
MDERR.RAISE_MD_ERROR('MD','SDO',-13199, 'MOVE TABLE=' || SQLERRM);
end;
else
begin
stmt := 'ALTER TABLE "MDSYS"."SDO_TXN_JOURNAL_REG" MOVE TABLESPACE ' || tblspc;
execute immediate stmt;
exception
when e_block_size then
NULL;
when others then
MDERR.RAISE_MD_ERROR('MD','SDO',-13199, 'MOVE TABLE=' || SQLERRM);
end;
end if;
end if;
stmt :=
'create index MDSYS.SDO_TXN_JOURNAL_REG_IDX ' ||
'on MDSYS.SDO_TXN_JOURNAL_REG(sdo_txn_idx_id, indexptniden, operation, rid) ' ||
local_clause || ' TABLESPACE ' || tblspc;
begin
execute immediate stmt;
exception
when others then
MDERR.RAISE_MD_ERROR('MD','SDO',-13199, 'CREATE TABLE=' || SQLERRM);
end;
END;
/
SHOW ERRORS
grant insert, delete, update, select on mdsys.sdo_txn_journal_reg to public;
create or replace public synonym sdo_txn_journal_reg
for mdsys.sdo_txn_journal_reg;
commit;
CREATE TABLE MDSYS.SDO_DIST_METADATA_TABLE
(
SDO_INDEX_OWNER VARCHAR2(130) NOT NULL, -- 2. ischema_mdtxnMetadata
SDO_INDEX_NAME VARCHAR2(130) NOT NULL, -- 3. iname_mdtxnMetadata
SDO_PARTITION_NAME VARCHAR2(130) NOT NULL, -- 4. iptn_mdtxnMetadata
TXNID VARCHAR2(128) NOT NULL, -- 1. oidstr_mdtxnMetadata
SDO_TSNAME VARCHAR2(130), -- 5. pTsName_mdtxnMetadata
SDO_TABLE_NAME VARCHAR2(130), -- 6. pTableName_mdtxnMetadata
IS_GEODETIC NUMBER, -- 7. is_geodetic_mdtxnMetadata
DML_CHAR NUMBER, -- 8. dml_char_mdtxnMetadata
UNITFACTOR NUMBER, -- 9. unitfactor_mdtxnMetadata
TOLERANCE NUMBER, -- 10. tolerance_mdtxnMetadata
LAYER_GTYPE NUMBER, -- 11. layer_gtype_mdtxnMetadata
LAYER_SRID NUMBER, -- 12. layer_srid_mdtxnMetadata
INDX_DIMS NUMBER, -- 13. indx_dims_mdtxnMetadata
DATA_DIMS NUMBER, -- 14. data_dims_mdtxnMetadata
INS_BB_START1 NUMBER, -- 15. insbb_mdtxnMetadata[0]
INS_BB_END1 NUMBER, -- 16. insbb_mdtxnMetadata[0]
INS_BB_START2 NUMBER, -- 17. insbb_mdtxnMetadata[0]
INS_BB_END2 NUMBER, -- 18. insbb_mdtxnMetadata[0]
INS_BB_START3 NUMBER, -- 19. insbb_mdtxnMetadata[0]
INS_BB_END3 NUMBER, -- 20. insbb_mdtxnMetadata[0]
INS_BB_START4 NUMBER, -- 21. insbb_mdtxnMetadata[0]
INS_BB_END4 NUMBER, -- 22. insbb_mdtxnMetadata[0]
DEL_BB_START1 NUMBER, -- 23. insbb_mdtxnMetadata[0]
DEL_BB_END1 NUMBER, -- 24. insbb_mdtxnMetadata[0]
DEL_BB_START2 NUMBER, -- 25. insbb_mdtxnMetadata[0]
DEL_BB_END2 NUMBER, -- 26. insbb_mdtxnMetadata[0]
DEL_BB_START3 NUMBER, -- 27. insbb_mdtxnMetadata[0]
DEL_BB_END3 NUMBER, -- 28. insbb_mdtxnMetadata[0]
DEL_BB_START4 NUMBER, -- 29. insbb_mdtxnMetadata[0]
DEL_BB_END4 NUMBER, -- 30. insbb_mdtxnMetadata[0]
INS_NO NUMBER, -- 31. ins_no_mdtxnMetadata
DEL_NO NUMBER -- 32. del_no_mdtxnMetadata
) INITRANS 255;
grant insert, delete, update, select on MDSYS.SDO_DIST_METADATA_TABLE to public;
create or replace public synonym SDO_DIST_METADATA_TABLE
for MDSYS.SDO_DIST_METADATA_TABLE;
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_TXN_IDX_EXP_UPD_RGN
(SDO_TXN_IDX_ID varchar2(32),
RID varchar2(24),
START_1 number,
END_1 number,
START_2 number,
END_2 number,
START_3 number,
END_3 number,
START_4 number,
END_4 number,
primary key(sdo_txn_idx_id, rid)
);
grant insert, delete, update, select on mdsys.sdo_txn_idx_exp_upd_rgn to public;
create or replace public synonym sdo_txn_idx_exp_upd_rgn
for mdsys.sdo_txn_idx_exp_upd_rgn;
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO