MINI MINI MANI MO
@@?/rdbms/admin/sqlsessstart.sql
declare
already_revoked exception;
pragma exception_init(already_revoked, -01927);
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'CREATE TABLE MDSYS.SDO_GEOR_SYSDATA_TABLE
(
SDO_OWNER VARCHAR2(32),
GEORASTER_TABLE_NAME VARCHAR2(32) NOT NULL,
GEORASTER_COLUMN_NAME VARCHAR2(1024) NOT NULL,
GEOR_METADATA_COLUMN_NAME VARCHAR2(1024),
RDT_TABLE_NAME VARCHAR2(32),
RASTER_ID NUMBER,
OTHER_TABLE_NAMES SDO_STRING_ARRAY,
CONSTRAINT unique_georasters
PRIMARY KEY (SDO_OWNER, RDT_TABLE_NAME, RASTER_ID)) ';
exception
when already_revoked then NULL;
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
begin
execute immediate
' alter table MDSYS.SDO_GEOR_SYSDATA_TABLE
modify ( SDO_OWNER VARCHAR2(128),
GEORASTER_TABLE_NAME VARCHAR2(128),
RDT_TABLE_NAME VARCHAR2(128) ) ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'alter table MDSYS.SDO_GEOR_SYSDATA_TABLE ERROR=' || SQLERRM);
end;
/
SHOW ERRORS
declare
already_revoked exception;
pragma exception_init(already_revoked, -01927);
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
' CREATE INDEX MDSYS.SDO_GEOR_IDX ON MDSYS.SDO_GEOR_SYSDATA_TABLE
(SDO_OWNER, GEORASTER_TABLE_NAME) ';
exception
when already_revoked then NULL;
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')2]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' CREATE INDEX MDSYS.SDO_GEOR_IDX1 ON MDSYS.SDO_GEOR_SYSDATA_TABLE
(RDT_TABLE_NAME,RASTER_ID) ';
exception
when already_revoked then NULL;
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')3]: ' || SQLERRM); RAISE;
end;
end;
/
declare
trigger_not_found exception;
pragma exception_init(trigger_not_found, -04080);
begin
begin
execute immediate 'DROP TRIGGER MDSYS.SDO_GEOR_DROP_USER';
exception
when trigger_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')4]: ' || SQLERRM); RAISE;
end;
end;
/
declare
trigger_not_found exception;
pragma exception_init(trigger_not_found, -04080);
begin
begin
execute immediate 'DROP TRIGGER MDSYS.SDO_GEOR_TRUNC_TABLE';
exception
when trigger_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')5]: ' || SQLERRM); RAISE;
end;
end;
/
CREATE OR REPLACE VIEW MDSYS.ALL_SDO_GEOR_SYSDATA AS
SELECT SDO_OWNER OWNER,
GEORASTER_TABLE_NAME TABLE_NAME,
GEORASTER_COLUMN_NAME COLUMN_NAME,
GEOR_METADATA_COLUMN_NAME METADATA_COLUMN_NAME,
RDT_TABLE_NAME RDT_TABLE_NAME,
RASTER_ID RASTER_ID,
OTHER_TABLE_NAMES OTHER_TABLE_NAMES
FROM MDSYS.SDO_GEOR_SYSDATA_TABLE
WHERE
(
(sdo_owner = sys_context('userenv', 'CURRENT_USER'))
or
exists
(
select table_name from sys.all_tables
where table_name=georaster_table_name
and owner = sdo_owner
union all
select table_name from sys.all_object_tables
where table_name=georaster_table_name
and owner = sdo_owner
union all
select view_name table_name from sys.all_views
where view_name=georaster_table_name
and owner = sdo_owner
)
);
CREATE OR REPLACE VIEW MDSYS.USER_SDO_GEOR_SYSDATA AS
SELECT TABLE_NAME, COLUMN_NAME,METADATA_COLUMN_NAME,
RDT_TABLE_NAME,RASTER_ID,OTHER_TABLE_NAMES
FROM MDSYS.ALL_SDO_GEOR_SYSDATA
WHERE owner = sys_context('userenv', 'CURRENT_USER');
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_TRIG_DEL2
AFTER UPDATE OR DELETE ON MDSYS.SDO_GEOR_SYSDATA_TABLE
FOR EACH ROW
BEGIN
SDO_GEOR_INT.sdo_invalidate_sysdata_cache(:old.rdt_table_name,
:old.raster_id);
END;
/
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_TRIG_INS1
INSTEAD OF INSERT ON mdsys.user_sdo_geor_sysdata
FOR EACH ROW
DECLARE
owner VARCHAR2(130);
valid VARCHAR2(32);
BEGIN
owner:=user;
valid:=SDO_GEOR_DEF.isValidEntry2(owner,nls_upper(:new.table_name),nls_upper(:new.column_name),nls_upper(:new.rdt_table_name),:new.raster_id);
if(valid='FALSE')
then
mderr.raise_md_error('MD', 'SDO', -13391, 'The inserted entry is not valid.');
end if;
SDO_GEOR_INT.insertUserSysEntry(user, :new.table_name, :new.column_name,
:new.metadata_column_name, :new.rdt_table_name, :new.raster_id,
:new.other_table_names);
END;
/
show errors;
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_TRIG_DEL1
INSTEAD OF DELETE ON mdsys.user_sdo_geor_sysdata
FOR EACH ROW
DECLARE
owner VARCHAR2(130);
valid VARCHAR2(32);
BEGIN
owner:=user;
valid:=SDO_GEOR_DEF.isValidEntry2(owner,nls_upper(:old.table_name),nls_upper(:old.column_name),nls_upper(:old.rdt_table_name),:old.raster_id);
if(valid='TRUE')
then
mderr.raise_md_error('MD', 'SDO', -13391, 'A valid entry cannot be deleted directly.');
end if;
SDO_GEOR_DEF.deleteMetaEntry(user, :old.rdt_table_name, :old.raster_id);
END;
/
show errors;
CREATE OR REPLACE TRIGGER MDSYS.SDO_GEOR_TRIG_UPD1
INSTEAD OF UPDATE ON mdsys.user_sdo_geor_sysdata
FOR EACH ROW
DECLARE
owner VARCHAR2(130);
valid VARCHAR2(32);
BEGIN
owner:=user;
valid:=SDO_GEOR_DEF.isValidEntry2(owner,nls_upper(:old.table_name),nls_upper(:old.column_name),nls_upper(:old.rdt_table_name),:old.raster_id);
if(valid='TRUE')
then
mderr.raise_md_error('MD', 'SDO', -13391, 'A valid entry cannot be updated directly.');
end if;
valid:=SDO_GEOR_DEF.isValidEntry2(owner,nls_upper(:new.table_name),nls_upper(:new.column_name),nls_upper(:new.rdt_table_name),:new.raster_id);
if(valid='FALSE')
then
mderr.raise_md_error('MD', 'SDO', -13391, 'The updated entry is not valid.');
end if;
SDO_GEOR_DEF.deleteMetaEntry(user, :old.rdt_table_name, :old.raster_id);
SDO_GEOR_INT.insertUserSysEntry(user, :new.table_name, :new.column_name,
:new.metadata_column_name, :new.rdt_table_name, :new.raster_id,
:new.other_table_names);
END;
/
show errors;
declare
trigger_not_found exception;
pragma exception_init(trigger_not_found, -04080);
table_not_found exception;
pragma exception_init(table_not_found, -00942);
begin
begin
execute immediate
' drop trigger MDSYS.sdo_geor_bddl_trigger ';
exception
when trigger_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')6]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' TRUNCATE TABLE MDSYS.sdo_geor_ddl__table$$ ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')7]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.sdo_geor_ddl__table$$ cascade constraint PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')8]: ' || SQLERRM); RAISE;
end;
end;
/
CREATE GLOBAL TEMPORARY TABLE MDSYS.sdo_geor_ddl__table$$ (id number) ON COMMIT PRESERVE ROWS;
declare
m_stmt varchar2(4000);
trigger_not_found exception;
pragma exception_init(trigger_not_found, -04080);
begin
m_stmt:='drop trigger MDSYS.sdo_geor_err_trigger';
EXECUTE IMMEDIATE m_stmt;
EXCEPTION
WHEN trigger_not_found THEN NULL;
WHEN OTHERS THEN
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')9]: ' || SQLERRM); RAISE;
end;
/
create or replace FUNCTION mdsys.TblContainsAdt wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
183 11f
WYKP5gON8yWuvJ3sO/A95LeIySowg43QACisfC9AkHOUsrYU3OLcgCaDGnHXUs5/KhZt9LOv
+bUwxaIU0Z8nmjMQI3LCYNc8jAaG6ZriLa0Pu1DUd7tQyMJNYWcjsiFPLj1Pbai/G8qJyYX6
RoRA9uYCMlgkJCYUZRLfRo+R+CcUCDC9sEgOUKB/9/0Xx+F7Fq7pk0bsTMhdMRmTh9XN90Tv
xrLIfDZUY0xX7Pl5wQ07dVbiyeWxYtg5MyEjInyI9bzkPx/as3IyT+eLeU9iGygRfUwq
/
show errors;
create or replace FUNCTION mdsys.GetMdsysEvent wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
be df
kP9o5ktZNqgbOQm5eFhNKg/be5owgy5KLZ7hf3RAkBAYuLcV7TdeZOoqUOjxDMyw0W9JTOLn
vO0+QXDoXZmaT4q2k69auBYqaIv+iodDk7GmihR/+2N8Vzlujr5tVxuGDWy2dvX+CU6Mob4h
CusCxjeyD6ibBNRu2xdsLiKMdq9g0y6zCJFU7yEgg1ZL6pLq2RAa8zv3hXPQom2asGGYPVvT
u4KE
/
show errors;
create or replace trigger MDSYS.sdo_geor_bddl_trigger
before ddl on database
declare
TYPE attrs_cur IS REF CURSOR;
m_cur attrs_cur;
m_event varchar2(512);
m_user varchar2(512);
m_owner varchar2(512);
m_type varchar2(512);
m_name varchar2(5120);
m_column varchar2(5120);
m_cnt NUMBER;
m_adt NUMBER;
m_stmt varchar2(4000);
m_stmt1 varchar2(4000);
m_var varchar2(512);
m_o_stmt VARCHAR2(5120);
PRAGMA AUTONOMOUS_TRANSACTION;
begin
m_stmt := 'select mdsys.GetMdsysEvent() from SYS.DUAL';
execute immediate m_stmt into m_cnt;
if ( m_cnt != 0 ) then
return;
end if;
m_stmt:='select sys.dbms_standard.dictionary_obj_type from SYS.DUAL';
execute immediate m_stmt into m_type;
if(not (m_type='TABLE' or m_type='TRIGGER' or m_type='USER' or m_type='TABLESPACE'))
then
return;
end if;
m_stmt:='select sys.dbms_standard.dictionary_obj_owner from SYS.DUAL';
execute immediate m_stmt into m_owner;
m_stmt:='select sys.dbms_standard.dictionary_obj_name from SYS.DUAL';
execute immediate m_stmt into m_name;
m_stmt:='select sys.dbms_standard.sysevent from SYS.DUAL';
execute immediate m_stmt into m_event;
if ( m_type = 'TABLE' and m_event != 'DROP' and m_event != 'RENAME' ) then
m_stmt := 'select mdsys.TblContainsAdt(:own, :tab) from SYS.DUAL';
begin
execute immediate m_stmt into m_adt using m_owner, m_name;
exception
when others then m_adt := 1;
end;
if ( m_adt = 0 ) then
return;
end if;
end if;
m_stmt:='select SYS_CONTEXT(''USERENV'',''SESSION_USER'') from SYS.DUAL';
execute immediate m_stmt into m_user;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='ALTER')
then
m_stmt:='select column_name from sys.dba_tab_columns where owner=:1 and table_name=:2';
begin
open m_cur for m_stmt using m_owner,m_name;
loop
fetch m_cur into m_column;
exit when m_cur%NOTFOUND;
m_stmt:='select sdo_geor_def.isDropColumn(:1) from SYS.DUAL';
execute immediate m_stmt into m_stmt1 using m_column;
if (trim(m_stmt1)='TRUE')
then
m_stmt:='begin sdo_geor_def.doAlterDropColumn(:1,:2,:3); end;';
execute immediate m_stmt using m_owner,m_name,m_column;
end if;
end loop;
close m_cur;
EXCEPTION WHEN OTHERS THEN
IF m_cur%ISOPEN THEN
close m_cur;
END IF;
RAISE;
end;
end if;
if ((m_event='DROP' and m_type='USER') or (m_event='DROP' and m_type='TABLESPACE'))
then
m_stmt:='insert into MDSYS.sdo_geor_ddl__table$$ values (1)';
EXECUTE IMMEDIATE m_stmt;
commit;
end if;
if (m_event='DROP' and m_type='TABLE')
then
if((m_user!='SYS' and m_user!='SYSTEM' and m_user!='MDSYS'and m_owner!='MDSYS' and m_owner!='SYS'))
then
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_sysdata_table where sdo_owner=:1 and RDT_TABLE_NAME=:2 and ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt using m_owner,m_name;
if(m_cnt!=0)
then
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_ddl__table$$ where ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt;
if(m_cnt=0)
then
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''The referenced raster data table(RDT) cannot be dropped.'')';
execute immediate m_stmt;
end if;
end if;
end if;
m_stmt:='insert into MDSYS.sdo_geor_ddl__table$$ values (2)';
EXECUTE IMMEDIATE m_stmt;
commit;
end if;
if(m_user='SYS' or m_user='SYSTEM' or m_user='MDSYS'
or m_owner='MDSYS' or m_owner='SYS')
then
return;
end if;
if (m_event='RENAME' and m_type='TABLE')
then
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_sysdata_table where sdo_owner=:1 and RDT_TABLE_NAME=:2 and ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt using m_owner,m_name;
if(m_cnt!=0)
then
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_ddl__table$$ where ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt;
if(m_cnt=0)
then
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''The referenced raster data table(RDT) cannot be renamed directly.'')';
execute immediate m_stmt;
end if;
end if;
end if;
if (m_type='TRIGGER' and m_event='DROP')
then
m_stmt:='select REGEXP_SUBSTR(:1,''GRDMLTR_.+'',1,1,''i'') from SYS.DUAL';
EXECUTE IMMEDIATE m_stmt into m_var using m_name;
if(m_var is null)
then
return;
end if;
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_ddl__table$$ where ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt;
if(m_cnt=0)
then
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''GeoRaster DML triggers cannot be dropped.'')';
execute immediate m_stmt;
end if;
end if;
if (m_type='TRIGGER' and m_event='ALTER')
then
m_stmt:='select sdo_geor_def.getSqlText from SYS.DUAL';
execute immediate m_stmt into m_o_stmt;
m_o_stmt:=nls_upper(trim(m_o_stmt));
if(instr(m_o_stmt,' COMPILE ')>0 or instr(m_o_stmt,' ENABLE ')>0
or substr(m_o_stmt,length(m_o_stmt)-8,8)=' COMPILE' or substr(m_o_stmt,length(m_o_stmt)-7,7)=' ENABLE' )
then
return;
end if;
m_stmt:='select REGEXP_SUBSTR(:1,''GRDMLTR_.+'',1,1,''i'') from SYS.DUAL';
EXECUTE IMMEDIATE m_stmt into m_var using m_name;
if(m_var is null)
then
return;
end if;
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_ddl__table$$ where ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt;
if(m_cnt=0)
then
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''GeoRaster DML triggers cannot be altered.'')';
execute immediate m_stmt;
end if;
end if;
if (m_type='TRIGGER' and m_event='CREATE')
then
m_stmt:='select REGEXP_SUBSTR(:1,''GRDMLTR_.+'',1,1,''i'') from SYS.DUAL';
EXECUTE IMMEDIATE m_stmt into m_var using m_name;
if(m_var is null)
then
return;
end if;
m_stmt:='select /*+ FIRST_ROWS(1) */ count(*) from MDSYS.sdo_geor_ddl__table$$ where ROWNUM < 2';
EXECUTE IMMEDIATE m_stmt into m_cnt;
if(m_cnt=0)
then
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391, ''GeoRaster reserved names cannot be used to create regular triggers.'')';
execute immediate m_stmt;
end if;
end if;
Exception
when others then
if(sqlcode=-13391)
then
m_stmt:=sqlerrm;
m_stmt:=substr(m_stmt,11);
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391,'''||m_stmt||''')';
execute immediate m_stmt;
end if;
end;
/
show errors;
create or replace trigger MDSYS.sdo_geor_addl_trigger
after ddl on database
declare
m_event varchar2(512);
m_owner varchar2(512);
m_type varchar2(512);
m_name varchar2(5120);
m_adt NUMBER;
m_cnt NUMBER;
m_stmt varchar2(4000);
m_ret varchar2(3000);
m_ret1 varchar2(512);
begin
m_stmt := 'select mdsys.GetMdsysEvent() from SYS.DUAL';
execute immediate m_stmt into m_cnt;
if ( m_cnt != 0 ) then
return;
end if;
m_stmt:='select sys.dbms_standard.dictionary_obj_type from SYS.DUAL';
execute immediate m_stmt into m_type;
if(not (m_type='TABLE' or m_type='TRIGGER' or m_type='USER' or m_type='TABLESPACE'))
then
return;
end if;
m_stmt:='select sys.dbms_standard.dictionary_obj_owner from SYS.DUAL';
execute immediate m_stmt into m_owner;
m_stmt:='select sys.dbms_standard.dictionary_obj_name from SYS.DUAL';
execute immediate m_stmt into m_name;
m_stmt:='select sys.dbms_standard.sysevent from SYS.DUAL';
execute immediate m_stmt into m_event;
if ( m_type = 'TABLE' and m_event != 'DROP' and m_event != 'RENAME' ) then
m_stmt := 'select mdsys.TblContainsAdt(:own, :tab) from SYS.DUAL';
begin
execute immediate m_stmt into m_adt using m_owner, m_name;
exception
when others then m_adt := 1;
end;
if ( m_adt = 0 ) then
return;
end if;
end if;
if((instr(nls_upper(m_name),'MDRT_')>0) and m_event='DROP')
then
return;
end if;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='CREATE')
then
m_stmt:='select sdo_geor_def.listAllGeoRasterFieldsStr(:1,:2) from SYS.DUAL';
execute immediate m_stmt into m_ret using m_owner,m_name;
m_ret:=trim(m_ret);
while (length(m_ret)!=0) loop
if (instr(m_ret,' $$__## ')!=0)
then
m_ret1:=trim(substr(m_ret,1,instr(m_ret,' $$__## ')-1));
m_ret:=trim(substr(m_ret,instr(m_ret,' $$__## ')+8));
else
m_ret1:=trim(m_ret);
m_ret:='';
end if;
m_stmt:='begin SDO_GEOR_UTL.createDMLTrigger(:1,:2); end;';
execute immediate m_stmt using '"'||m_owner||'".'||m_name,m_ret1;
end loop;
return;
end if;
if (m_name!='MDSYS' and m_type='USER' and m_event='DROP')
then
m_stmt:='call sdo_geor_def.doDropUserAndTable()';
execute immediate m_stmt;
end if;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='DROP')
then
m_stmt:='call sdo_geor_def.doDropUserAndTable()';
execute immediate m_stmt;
end if;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='TRUNCATE')
then
m_stmt:='call sdo_geor_def.doTruncateTable()';
execute immediate m_stmt;
end if;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='ALTER')
then
m_stmt:='call sdo_geor_def.doAlterRenameTable()';
execute immediate m_stmt;
end if;
if (m_owner!='MDSYS' and m_owner!='SYS' and m_type='TABLE' and m_event='RENAME')
then
m_stmt:='call sdo_geor_def.doRenameTable()';
execute immediate m_stmt;
end if;
if (m_event='DROP' and m_type='TABLE')
then
m_stmt:='delete from MDSYS.sdo_geor_ddl__table$$ where id=2';
EXECUTE IMMEDIATE m_stmt;
end if;
if ((m_type='USER' and m_event='DROP') or (m_type='TABLESPACE' and m_event='DROP'))
then
m_stmt:='delete from MDSYS.sdo_geor_ddl__table$$';
EXECUTE IMMEDIATE m_stmt;
end if;
Exception
when others then
if(sqlcode=-13391)
then
m_stmt:=sqlerrm;
m_stmt:=substr(m_stmt,11);
m_stmt:='call mderr.raise_md_error(''MD'', ''SDO'', -13391,'''||m_stmt||''')';
execute immediate m_stmt;
end if;
end;
/
show errors;
grant select,insert, delete, update on mdsys.user_sdo_geor_sysdata to public;
grant read on mdsys.all_sdo_geor_sysdata to public;
create or replace public synonym user_sdo_geor_sysdata for
mdsys.user_sdo_geor_sysdata;
create or replace public synonym all_sdo_geor_sysdata for
mdsys.all_sdo_geor_sysdata;
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'CREATE SEQUENCE MDSYS.SDO_GEOR_SEQ
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
CACHE 10 ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')10]: ' || SQLERRM); RAISE;
end;
end;
/
grant select on MDSYS.SDO_GEOR_SEQ to public;
declare
table_not_found exception;
pragma exception_init(table_not_found, -00942);
begin
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_MOSAIC_0 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')11]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_MOSAIC_1 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')12]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_MOSAIC_2 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')13]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_MOSAIC_3 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')14]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_MOSAIC_CB PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')15]: ' || SQLERRM); RAISE;
end;
end;
/
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_MOSAIC_0
(
rid rowid,
rdt VARCHAR2(270),
rstid number,
rstype number,
srid number,
rctif VARCHAR2(10),
r0 number,
c0 number,
b0 number,
r1 number,
c1 number,
b1 number,
bands number,
bcv number,
ilv varchar2(5),
rblksz number,
cblksz number,
bblksz number,
cdl number,
cdp varchar2(50),
ultr number,
ultc number,
ultb number,
rrows number,
cols number,
cptype VARCHAR2(10),
id number primary key,
op number,
nodata_ind number,
dist number,
extent mdsys.sdo_geometry,
meta XMLType
) ON COMMIT PRESERVE ROWS;
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_MOSAIC_1
(
rid rowid,
ultr number,
ultc number,
rsize number,
csize number,
r0 number,
r1 number,
c0 number,
c1 number,
b0 number,
b1 number
);
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_MOSAIC_2
as select * from MDSYS.SDO_GR_MOSAIC_1
where 0=1;
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_MOSAIC_3 (p number);
CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_MOSAIC_CB
(
id number,
rowno number,
colno number,
band number,
val1 number,
val2 number
) ON COMMIT PRESERVE ROWS;
GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_MOSAIC_0 TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_MOSAIC_1 TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_MOSAIC_2 TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_MOSAIC_3 TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_MOSAIC_CB TO PUBLIC;
declare
begin
begin
execute immediate
' CREATE INDEX MDSYS.SDO_GEOR_CB_IDX ON MDSYS.SDO_GR_MOSAIC_CB
(ID, BAND, ROWNO, COLNO) ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')16]: ' || SQLERRM); RAISE;
end;
end;
/
declare
table_not_found exception;
pragma exception_init(table_not_found, -00942);
begin
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_RDT_1 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')17]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_RDT_2 PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')18]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' DROP TABLE MDSYS.SDO_GR_PARALLEL PURGE ';
exception
when table_not_found then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')19]: ' || SQLERRM); RAISE;
end;
end;
/
declare
begin
begin
execute immediate
' CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_PARALLEL
(
pid number
) ON COMMIT PRESERVE ROWS parallel ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')20]: ' || SQLERRM); RAISE;
end;
end;
/
declare
begin
begin
execute immediate
' CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_RDT_1
(
rasterDataTable varchar2(128),
rasterId number,
pyramidLevel number,
bandBlockNumber number,
rowBlockNumber number,
columnBlockNumber number,
blockMBR SDO_GEOMETRY,
rasterBlock BLOB,
constraint sdo_gr_rdt_1_pk primary key
(rasterDataTable, rasterId, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber)
) parallel';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')21]: ' || SQLERRM); RAISE;
end;
end;
/
declare
begin
begin
execute immediate
' CREATE GLOBAL TEMPORARY TABLE MDSYS.SDO_GR_RDT_2 OF SDO_RASTER
(
constraint sdo_gr_rdt_2_pk primary key
(rasterId, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber)
) ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')22]: ' || SQLERRM); RAISE;
end;
end;
/
declare
begin
begin
execute immediate
' GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_RDT_1 TO PUBLIC ';
execute immediate
' GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_RDT_2 TO PUBLIC ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')23]: ' || SQLERRM); RAISE;
end;
begin
execute immediate
' GRANT SELECT,INSERT,UPDATE,DELETE on MDSYS.SDO_GR_PARALLEL TO PUBLIC ';
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')24]: ' || SQLERRM); RAISE;
end;
end;
/
declare
already_exists exception;
pragma exception_init(already_exists, -00955);
begin
begin
execute immediate
'CREATE TABLE MDSYS.SDO_GEOR_PLUGIN_REGISTRY
( plugin_name VARCHAR2(32) PRIMARY KEY,
plugin_type VARCHAR2(32),
plugin VARCHAR2(32),
company_name VARCHAR2(1024),
description VARCHAR2(1024)) ';
exception
when already_exists then NULL;
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')25]: ' || SQLERRM); RAISE;
end;
end;
/
SHOW ERRORS
GRANT READ ON MDSYS.SDO_GEOR_PLUGIN_REGISTRY TO PUBLIC;
declare
num number;
begin
execute immediate 'select count(*) from mdsys.SDO_GEOR_SYSDATA_TABLE' into num;
if(num=0)
then
if(sys_context('userenv', 'con_id')!=1)
then
execute immediate 'alter trigger mdsys.sdo_geor_addl_trigger disable';
execute immediate 'alter trigger mdsys.sdo_geor_bddl_trigger disable';
execute immediate 'drop PUBLIC SYNONYM SDO_GEORASTER';
execute immediate 'revoke EXECUTE ON MDSYS.SDO_GEORASTER from PUBLIC';
end if;
end if;
exception
when others then
SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
'EXCEPTION[prvtgrs.sql(' || $$PLSQL_LINE || ')26]: ' || SQLERRM); RAISE;
end;
/
create or replace procedure mdsys.enableGeoRaster wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
4c3 1be
i3cdongJvxc6O4UiG0peP8iFi8wwg1XIDAxqZy/GAP5eR2vIbxrjHM9dicnG9X+YE/9IJumR
oaF05iHsNjV9B78LLA4WHCPlEnVYc3K5ej+9Ji8xXy+bwfWTi8yHzIOgQlWZ9SBf85wAqTtb
3bp0Fzk3mTdfW9GbJSXtQGE/Vp7BT8KL7YgqkwFtNOV57AFjVYs8pHos32PmWXTqHhWmTr3y
acmsGq8xO3QOHyPb1Oa6HwSOjP3Xi5E5mgGENeMz7MYwNPiS2Qif7buH/MRhTVXbZEPd1j2e
knMUPOu01HHgv/5AsMH+6qVYx3vT9GsojrjwvB7W8ToS86P5W+YfEtOevdpk5+e3tC69+n52
TlB5G41x51BZMeeUREjzrAflOa9Fgbx9B8bNwK5I80QlitPy+aJEgyeE604omXIx+g8we8fS
+4sj2m4=
/
@?/rdbms/admin/sqlsessend.sql
OHA YOOOO