MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/md/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/md/admin/prvtgrs.plb

@@?/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