MINI MINI MANI MO

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

@@?/rdbms/admin/sqlsessstart.sql
commit;
declare
  object_does_not_exist exception;
  pragma exception_init(object_does_not_exist, -00942);
begin
    begin
       execute immediate
        ' drop table mdsys.ext_tab_ellipsoids';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_datums';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_measure';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_ref_sys';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_coord_sys';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_axes';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_axis_names';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_coord_ops';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_op_paths';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_preferred_ops_system';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_op_methods';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_op_params';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_param_vals';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_op_param_use';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_cs_srs';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_prime_meridians';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_ref_sys_1';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

    begin
       execute immediate
        ' drop table mdsys.ext_tab_param_vals_1';
      exception
        when object_does_not_exist then NULL;
        when others then
         SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                                'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
    end;

end;
/
commit;
declare
  UNIQUE_CONSTR_EXISTS EXCEPTION;
  PRAGMA EXCEPTION_INIT(UNIQUE_CONSTR_EXISTS,   -2261); 
begin
  execute immediate
    'alter table MDSYS.SDO_UNITS_OF_MEASURE add (
       CONSTRAINT uom_unique_short_name UNIQUE (short_name))';
  exception
    when UNIQUE_CONSTR_EXISTS then NULL;
    when others then
    SYS.DBMS_SYSTEM.KSDWRT(SYS.DBMS_SYSTEM.TRACE_FILE,
                           'EXCEPTION[sdoepsgl3.sql(' || $$PLSQL_LINE || ')1]: ' || SQLERRM); RAISE;
end;
/
alter trigger mdsys.sdo_units_of_measure_trigger compile;
commit;
alter session set current_schema=SYS;
DECLARE
  ORCL_HOME_DIR VARCHAR2(128);
  ORCL_WORK_DIR VARCHAR2(128);
  platform NUMBER;
  con_id number := sys_context('userenv', 'con_id');
  object_not_found exception;
  pragma exception_init(object_not_found, -04043);
BEGIN
  SELECT platform_id INTO platform FROM v$database;


    IF(platform = 15) THEN 
      EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY sdo_dir_admin AS ''ORA_ROOT:[MD.ADMIN]''';
      EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY sdo_dir_work AS ''ORA_ROOT:[WORK]''';
    ELSE
      DBMS_SYSTEM.GET_ENV('T_WORK', ORCL_WORK_DIR);
      DBMS_SYSTEM.GET_ENV('ORACLE_HOME', ORCL_HOME_DIR);
      EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY sdo_dir_admin AS ''' || ORCL_HOME_DIR || '/md/admin''';
      EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY sdo_dir_work AS ''' || ORCL_WORK_DIR || '''';
    END IF;

dbms_output.put_line('qwerty');
end;
/
alter session set current_schema=MDSYS;
select 'EPSG External Tables' from dual;
alter table mdsys.sdo_ellipsoids disable constraint ELLIPSOID_FOREIGN_UOM;
alter table mdsys.sdo_datums disable constraint DATUM_FOREIGN_MERIDIAN;
alter table mdsys.sdo_units_of_measure disable constraint UNIT_OF_MEASURE_FOREIGN_UOM;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_CS;
alter table mdsys.sdo_coord_axes disable constraint COORD_AXIS_FOREIGN_AXIS;
alter table mdsys.sdo_coord_ops disable constraint COORD_OPERATION_FOREIGN_METHOD;
alter table mdsys.sdo_coord_op_param_vals disable constraint COORD_OP_PARA_VAL_FOREIGN_UOM;
alter table mdsys.sdo_datums disable constraint DATUM_FOREIGN_LEGACY;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_DATUM;
alter table mdsys.sdo_coord_ops disable constraint COORD_OPERATION_FOREIGN_TARGET;
alter table mdsys.sdo_coord_op_param_vals disable constraint COORD_OP_PARA_VAL_FOREIGN_OP;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_PROJ;
alter table mdsys.sdo_coord_ops disable constraint COORD_OPERATION_FOREIGN_SOURCE;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_LEGACY;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_GEOG;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_HORIZ;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_VERT;
alter table mdsys.sdo_coord_ref_sys disable constraint COORD_REF_SYS_FOREIGN_CS;
alter table mdsys.sdo_coord_ref_sys drop constraint CRS_CHECK_COMPOUND;
CREATE TABLE ext_tab (
  ellipsoid_id       number not null,
  ellipsoid_name     varchar2(80) not null,
  semi_major_axis    number,
  uom_id             number,
  inv_flattening     number,
  semi_minor_axis    number,
  information_source varchar2(254),
  data_source        varchar2(40),
  is_legacy          varchar2(5) not null,
  legacy_code        number)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (ellipsoid_id, ellipsoid_name, semi_major_axis, uom_id, inv_flattening, semi_minor_axis, information_source, data_source, is_legacy, legacy_code))
    LOCATION ('sdo_ellipsoids.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
select sys_context('userenv', 'con_id') from dual;
select sys_context('userenv', 'con_name') from dual;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate  '
CREATE TABLE ext_tab_ellipsoids ' || sharing  ||' (
ellipsoid_id       number not null,
  ellipsoid_name     varchar2(80) not null,
  semi_major_axis    number,
  uom_id             number,
  inv_flattening     number,
  semi_minor_axis    number,
  information_source varchar2(254),
  data_source        varchar2(40),
  is_legacy          varchar2(5) not null,
  legacy_code        number)';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_ellipsoids select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_ellipsoids:' from dual;
select count(*) from mdsys.sdo_ellipsoids;
MERGE INTO sdo_ellipsoids D
   USING (SELECT ellipsoid_id, ellipsoid_name, semi_major_axis, uom_id, inv_flattening, semi_minor_axis, information_source, data_source, is_legacy, legacy_code FROM ext_tab_ellipsoids) S
   ON (D.ellipsoid_id = S.ellipsoid_id)
   WHEN MATCHED THEN update set
     D.ellipsoid_name     = S.ellipsoid_name,
     D.semi_major_axis    = S.semi_major_axis,
     D.uom_id             = S.uom_id,
     D.inv_flattening     = S.inv_flattening,
     D.semi_minor_axis    = S.semi_minor_axis,
     D.information_source = S.information_source,
     D.data_source        = S.data_source,
     D.is_legacy          = S.is_legacy,
     D.legacy_code        = S.legacy_code
   WHEN NOT MATCHED THEN
     INSERT (D.ellipsoid_id, D.ellipsoid_name, D.semi_major_axis, D.uom_id, D.inv_flattening, D.semi_minor_axis, D.information_source, D.data_source, D.is_legacy, D.legacy_code)
     VALUES (S.ellipsoid_id, S.ellipsoid_name, S.semi_major_axis, S.uom_id, S.inv_flattening, S.semi_minor_axis, S.information_source, S.data_source, S.is_legacy, S.legacy_code);
select count(*) from sdo_ellipsoids;
drop table ext_tab;
CREATE TABLE ext_tab (
 DATUM_ID           NUMBER(10) not null,
 DATUM_NAME         VARCHAR2(80) not null,
 DATUM_TYPE         VARCHAR2(24),
 ELLIPSOID_ID       NUMBER(10),
 PRIME_MERIDIAN_ID  NUMBER(10),
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(40),
 SHIFT_X            NUMBER,
 SHIFT_Y            NUMBER,
 SHIFT_Z            NUMBER,
 ROTATE_X           NUMBER,
 ROTATE_Y           NUMBER,
 ROTATE_Z           NUMBER,
 SCALE_ADJUST       NUMBER,
 IS_LEGACY          VARCHAR2(5) not null,
 LEGACY_CODE        NUMBER(10))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (datum_id, datum_name, datum_type, ellipsoid_id, prime_meridian_id, information_source, data_source,
     shift_x, shift_y, shift_z, rotate_x, rotate_y, rotate_z, scale_adjust, is_legacy, legacy_code))
    LOCATION ('sdo_datums.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_datums ' || sharing ||' (
 DATUM_ID           NUMBER(10) not null,
 DATUM_NAME         VARCHAR2(80) not null,
 DATUM_TYPE         VARCHAR2(24),
 ELLIPSOID_ID       NUMBER(10),
 PRIME_MERIDIAN_ID  NUMBER(10),
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(40),
 SHIFT_X            NUMBER,
 SHIFT_Y            NUMBER,
 SHIFT_Z            NUMBER,
 ROTATE_X           NUMBER,
 ROTATE_Y           NUMBER,
 ROTATE_Z           NUMBER,
 SCALE_ADJUST       NUMBER,
 IS_LEGACY          VARCHAR2(5) not null,
 LEGACY_CODE        NUMBER(10))';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_datums select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_datums:' from dual;
select count(*) from sdo_datums;
MERGE INTO sdo_datums D
   USING (SELECT datum_id, datum_name, datum_type, ellipsoid_id, prime_meridian_id, information_source, data_source,
                 shift_x, shift_y, shift_z, rotate_x, rotate_y, rotate_z, scale_adjust, is_legacy, legacy_code FROM ext_tab_datums) S
   ON (D.datum_id = S.datum_id)
   WHEN MATCHED THEN update set
     D.datum_name         = S.datum_name,
     D.datum_type         = S.datum_type,
     D.ellipsoid_id       = S.ellipsoid_id,
     D.prime_meridian_id  = S.prime_meridian_id,
     D.information_source = S.information_source,
     D.data_source        = S.data_source,
     D.shift_x            = S.shift_x,
     D.shift_y            = S.shift_y,
     D.shift_z            = S.shift_z,
     D.rotate_x           = S.rotate_x,
     D.rotate_y           = S.rotate_y,
     D.rotate_z           = S.rotate_z,
     D.scale_adjust       = S.scale_adjust,
     D.is_legacy          = S.is_legacy,
     D.legacy_code        = S.legacy_code
   WHEN NOT MATCHED THEN
     INSERT (D.datum_id, D.datum_name, D.datum_type, D.ellipsoid_id, D.prime_meridian_id, D.information_source, D.data_source,
             D.shift_x, D.shift_y, D.shift_z, D.rotate_x, D.rotate_y, D.rotate_z, D.scale_adjust, D.is_legacy, D.legacy_code)
     VALUES (S.datum_id, S.datum_name, S.datum_type, S.ellipsoid_id, S.prime_meridian_id, S.information_source, S.data_source,
             S.shift_x, S.shift_y, S.shift_z, S.rotate_x, S.rotate_y, S.rotate_z, S.scale_adjust, S.is_legacy, S.legacy_code);
select count(*) from sdo_datums;
drop table ext_tab;
CREATE TABLE ext_tab (
 UOM_ID             NUMBER(10) not null,
 UNIT_OF_MEAS_NAME  VARCHAR2(2083) not null,
 SHORT_NAME         VARCHAR2(80),
 LEGACY_UNIT_NAME   VARCHAR2(80),
 UNIT_OF_MEAS_TYPE  VARCHAR2(50),
 TARGET_UOM_ID      NUMBER(10),
 FACTOR_B           NUMBER,
 FACTOR_C           NUMBER,
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(40),
 IS_LEGACY          VARCHAR2(5) not null,
 LEGACY_CODE        NUMBER(10))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (uom_id, unit_of_meas_name, short_name, legacy_unit_name, unit_of_meas_type, target_uom_id, factor_b, factor_c, information_source, data_source, is_legacy, legacy_code))
    LOCATION ('sdo_units_of_measure.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_measure ' || sharing ||' (
 UOM_ID             NUMBER(10) not null,
 UNIT_OF_MEAS_NAME  VARCHAR2(2083) not null,
 SHORT_NAME         VARCHAR2(80),
 LEGACY_UNIT_NAME   VARCHAR2(80),
 UNIT_OF_MEAS_TYPE  VARCHAR2(50),
 TARGET_UOM_ID      NUMBER(10),
 FACTOR_B           NUMBER,
 FACTOR_C           NUMBER,
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(40),
 IS_LEGACY          VARCHAR2(5) not null,
 LEGACY_CODE        NUMBER(10)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_measure select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_units_of_measure:' from dual;
select count(*) from sdo_units_of_measure;
MERGE INTO sdo_units_of_measure D
   USING (SELECT uom_id, unit_of_meas_name, short_name, legacy_unit_name, unit_of_meas_type,
                 target_uom_id, factor_b, factor_c, information_source, data_source, is_legacy, legacy_code FROM ext_tab_measure) S
   ON (D.uom_id = S.uom_id)
   WHEN MATCHED THEN update set
     D.unit_of_meas_name = S.unit_of_meas_name,
     D.short_name        = S.short_name,
     D.legacy_unit_name  = S.legacy_unit_name,
     D.unit_of_meas_type = S.unit_of_meas_type,
     D.target_uom_id     = S.target_uom_id,
     D.factor_b          = S.factor_b,
     D.factor_c          = S.factor_c
   WHEN NOT MATCHED THEN
     INSERT (D.uom_id, D.unit_of_meas_name, D.short_name, D.legacy_unit_name, D.unit_of_meas_type,
             D.target_uom_id, D.factor_b, D.factor_c, D.information_source, D.data_source, D.is_legacy, D.legacy_code)
     VALUES (S.uom_id, S.unit_of_meas_name, S.short_name, S.legacy_unit_name, S.unit_of_meas_type,
             S.target_uom_id, S.factor_b, S.factor_c, S.information_source, S.data_source, S.is_legacy, S.legacy_code);
select count(*) from sdo_units_of_measure;
drop table ext_tab;
CREATE TABLE ext_tab (
 SRID                  NUMBER(10) not null,
 COORD_REF_SYS_NAME    VARCHAR2(80) not null,
 COORD_REF_SYS_KIND    VARCHAR2(24) not null,
 COORD_SYS_ID          NUMBER(10),
 DATUM_ID              NUMBER(10),
 GEOG_CRS_DATUM_ID     NUMBER(10),
 SOURCE_GEOG_SRID      NUMBER(10),
 PROJECTION_CONV_ID    NUMBER(10),
 CMPD_HORIZ_SRID       NUMBER(10),
 CMPD_VERT_SRID        NUMBER(10),
 INFORMATION_SOURCE    VARCHAR2(254),
 DATA_SOURCE           VARCHAR2(40),
 IS_LEGACY             VARCHAR2(5) not null,
 LEGACY_CODE           NUMBER(10),
 LEGACY_WKTEXT         VARCHAR2(2046),
 IS_VALID              VARCHAR2(5),
 SUPPORTS_SDO_GEOMETRY VARCHAR2(5))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (srid, coord_ref_sys_name, coord_ref_sys_kind, coord_sys_id, datum_id, geog_crs_datum_id, source_geog_srid, projection_conv_id, cmpd_horiz_srid, cmpd_vert_srid, information_source, data_source, is_legacy, legacy_code, legacy_wktext char(2046), is_valid, supports_sdo_geometry))
    LOCATION ('sdo_coord_ref_sys.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_ref_sys ' || sharing ||' (
 SRID                  NUMBER(10) not null,
 COORD_REF_SYS_NAME    VARCHAR2(80) not null,
 COORD_REF_SYS_KIND    VARCHAR2(24) not null,
 COORD_SYS_ID          NUMBER(10),
 DATUM_ID              NUMBER(10),
 GEOG_CRS_DATUM_ID     NUMBER(10),
 SOURCE_GEOG_SRID      NUMBER(10),
 PROJECTION_CONV_ID    NUMBER(10),
 CMPD_HORIZ_SRID       NUMBER(10),
 CMPD_VERT_SRID        NUMBER(10),
 INFORMATION_SOURCE    VARCHAR2(254),
 DATA_SOURCE           VARCHAR2(40),
 IS_LEGACY             VARCHAR2(5) not null,
 LEGACY_CODE           NUMBER(10),
 LEGACY_WKTEXT         VARCHAR2(2046),
 IS_VALID              VARCHAR2(5),
 SUPPORTS_SDO_GEOMETRY VARCHAR2(5)) ';
END;
/
select count(*) from mdsys.ext_tab_ref_sys;
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_ref_sys select * from ext_tab;
      commit;
   end if;
end;
/
select count(*) from mdsys.ext_tab_ref_sys;
select 'sdo_coord_ref_sys:' from dual;
select count(*) from sdo_coord_ref_sys;
create table mdsys.ext_tab_ref_sys_1 as select * from mdsys.ext_tab_ref_sys;
MERGE INTO sdo_coord_ref_sys D
   USING (SELECT srid, coord_ref_sys_name, coord_ref_sys_kind, coord_sys_id, datum_id, geog_crs_datum_id, source_geog_srid, projection_conv_id,
                 cmpd_horiz_srid, cmpd_vert_srid, information_source, data_source, is_legacy, legacy_code, legacy_wktext, is_valid, supports_sdo_geometry FROM mdsys.ext_tab_ref_sys_1) S
   ON (D.srid = S.srid)
   WHEN MATCHED THEN update set
     D.coord_ref_sys_name    = S.coord_ref_sys_name,
     D.coord_ref_sys_kind    = S.coord_ref_sys_kind,
     D.coord_sys_id          = S.coord_sys_id,
     D.datum_id              = S.datum_id,
     D.geog_crs_datum_id     = S.geog_crs_datum_id,
     D.source_geog_srid      = S.source_geog_srid,
     D.projection_conv_id    = S.projection_conv_id,
     D.cmpd_horiz_srid       = S.cmpd_horiz_srid,
     D.cmpd_vert_srid        = S.cmpd_vert_srid,
     D.information_source    = S.information_source,
     D.data_source           = S.data_source,
     D.is_legacy             = S.is_legacy,
     D.legacy_code           = S.legacy_code,
     D.legacy_wktext         = replace(S.legacy_wktext, '\n', '
'),
     D.is_valid              = S.is_valid,
     D.supports_sdo_geometry = S.supports_sdo_geometry
   WHEN NOT MATCHED THEN
     INSERT (D.srid, D.coord_ref_sys_name, D.coord_ref_sys_kind, D.coord_sys_id, D.datum_id, D.geog_crs_datum_id, D.source_geog_srid, D.projection_conv_id,
             D.cmpd_horiz_srid, D.cmpd_vert_srid, D.information_source, D.data_source, D.is_legacy, D.legacy_code, D.legacy_wktext, D.is_valid, D.supports_sdo_geometry)
     VALUES (S.srid, S.coord_ref_sys_name, S.coord_ref_sys_kind, S.coord_sys_id, S.datum_id, S.geog_crs_datum_id, S.source_geog_srid, S.projection_conv_id,
             S.cmpd_horiz_srid, S.cmpd_vert_srid, S.information_source, S.data_source, S.is_legacy, S.legacy_code, replace(S.legacy_wktext, '\n', '
'), S.is_valid, S.supports_sdo_geometry);
select count(*) from sdo_coord_ref_sys;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_SYS_ID       NUMBER(10) not null,
 COORD_SYS_NAME     VARCHAR2(254) not null,
 COORD_SYS_TYPE     VARCHAR2(24),
 DIMENSION          NUMBER(5),
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(50))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_sys_id, coord_sys_name, coord_sys_type, dimension, information_source, data_source))
    LOCATION ('sdo_coord_sys.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_coord_sys ' || sharing ||' (
 COORD_SYS_ID       NUMBER(10) not null,
 COORD_SYS_NAME     VARCHAR2(254) not null,
 COORD_SYS_TYPE     VARCHAR2(24),
 DIMENSION          NUMBER(5),
 INFORMATION_SOURCE VARCHAR2(254),
 DATA_SOURCE        VARCHAR2(50)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_coord_sys select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_sys:' from dual;
select count(*) from sdo_coord_sys;
MERGE INTO sdo_coord_sys D
   USING (SELECT coord_sys_id, coord_sys_name, coord_sys_type, dimension, information_source, data_source FROM ext_tab_coord_sys) S
   ON (D.coord_sys_id = S.coord_sys_id)
   WHEN MATCHED THEN update set
     D.coord_sys_name     = S.coord_sys_name,
     D.coord_sys_type     = S.coord_sys_type,
     D.dimension          = S.dimension,
     D.information_source = S.information_source,
     D.data_source        = S.data_source
   WHEN NOT MATCHED THEN
     INSERT (D.coord_sys_id, D.coord_sys_name, D.coord_sys_type, D.dimension, D.information_source, D.data_source)
     VALUES (S.coord_sys_id, S.coord_sys_name, S.coord_sys_type, S.dimension, S.information_source, S.data_source);
select count(*) from sdo_coord_sys;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_SYS_ID                                       NUMBER(10) not null,
 COORD_AXIS_NAME_ID                                 NUMBER(10),
 COORD_AXIS_ORIENTATION                             VARCHAR2(24),
 COORD_AXIS_ABBREVIATION                            VARCHAR2(24),
 UOM_ID                                             NUMBER(10),
 "ORDER"                                            NUMBER(5) not null)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_sys_id, coord_axis_name_id, coord_axis_orientation, coord_axis_abbreviation, uom_id, "ORDER"))
    LOCATION ('sdo_coord_axes.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_axes ' || sharing ||' (
 COORD_SYS_ID                                       NUMBER(10) not null,
 COORD_AXIS_NAME_ID                                 NUMBER(10),
 COORD_AXIS_ORIENTATION                             VARCHAR2(24),
 COORD_AXIS_ABBREVIATION                            VARCHAR2(24),
 UOM_ID                                             NUMBER(10),
 "ORDER"                                            NUMBER(5) not null) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_axes select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_axes:' from dual;
select count(*) from sdo_coord_axes;
MERGE INTO sdo_coord_axes D
   USING (SELECT coord_sys_id, coord_axis_name_id, coord_axis_orientation, coord_axis_abbreviation, uom_id, "ORDER" FROM ext_tab_axes) S
   ON (D.coord_sys_id = S.coord_sys_id and D."ORDER" = S."ORDER")
   WHEN MATCHED THEN update set
     D.coord_axis_name_id      = S.coord_axis_name_id,
     D.coord_axis_orientation  = S.coord_axis_orientation,
     D.coord_axis_abbreviation = S.coord_axis_abbreviation,
     D.uom_id                  = S.uom_id
   WHEN NOT MATCHED THEN
     INSERT (D.coord_sys_id, D.coord_axis_name_id, D.coord_axis_orientation, D.coord_axis_abbreviation, D.uom_id, D."ORDER")
     VALUES (S.coord_sys_id, S.coord_axis_name_id, S.coord_axis_orientation, S.coord_axis_abbreviation, S.uom_id, S."ORDER");
select count(*) from sdo_coord_axes;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_AXIS_NAME_ID                        NUMBER(10) not null,
 COORD_AXIS_NAME                           VARCHAR2(80) not null)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_axis_name_id, coord_axis_name))
    LOCATION ('sdo_coord_axis_names.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_axis_names ' || sharing ||' (
 COORD_AXIS_NAME_ID                        NUMBER(10) not null,
 COORD_AXIS_NAME                           VARCHAR2(80) not null) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_axis_names select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_axis_names:' from dual;
select count(*) from sdo_coord_axis_names;
MERGE INTO sdo_coord_axis_names D
   USING (SELECT coord_axis_name_id, coord_axis_name FROM ext_tab_axis_names) S
   ON (D.coord_axis_name_id = S.coord_axis_name_id)
   WHEN MATCHED THEN update set
     D.coord_axis_name = S.coord_axis_name
   WHEN NOT MATCHED THEN
     INSERT (D.coord_axis_name_id, D.coord_axis_name)
     VALUES (S.coord_axis_name_id, S.coord_axis_name);
select count(*) from sdo_coord_axis_names;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_OP_ID                                        NUMBER(10) not null,
 COORD_OP_NAME                                      VARCHAR2(80),
 COORD_OP_TYPE                                      VARCHAR2(24),
 SOURCE_SRID                                        NUMBER(10),
 TARGET_SRID                                        NUMBER(10),
 COORD_TFM_VERSION                                  VARCHAR2(24),
 COORD_OP_VARIANT                                   NUMBER(5),
 COORD_OP_METHOD_ID                                 NUMBER(10),
 UOM_ID_SOURCE_OFFSETS                              NUMBER(10),
 UOM_ID_TARGET_OFFSETS                              NUMBER(10),
 INFORMATION_SOURCE                                 VARCHAR2(254),
 DATA_SOURCE                                        VARCHAR2(40),
 SHOW_OPERATION                                     NUMBER(3) not null,
 IS_LEGACY                                          VARCHAR2(5) not null,
 LEGACY_CODE                                        NUMBER(10),
 REVERSE_OP                                         NUMBER(1),
 IS_IMPLEMENTED_FORWARD                             NUMBER(1),
 IS_IMPLEMENTED_REVERSE                             NUMBER(1))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_op_id, coord_op_name, coord_op_type, source_srid, target_srid, coord_tfm_version, coord_op_variant, coord_op_method_id, uom_id_source_offsets, uom_id_target_offsets, information_source, data_source, show_operation, is_legacy, legacy_code, reverse_op, is_implemented_forward, is_implemented_reverse))
    LOCATION ('sdo_coord_ops.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_coord_ops ' || sharing ||' (
 COORD_OP_ID                                        NUMBER(10) not null,
 COORD_OP_NAME                                      VARCHAR2(80),
 COORD_OP_TYPE                                      VARCHAR2(24),
 SOURCE_SRID                                        NUMBER(10),
 TARGET_SRID                                        NUMBER(10),
 COORD_TFM_VERSION                                  VARCHAR2(24),
 COORD_OP_VARIANT                                   NUMBER(5),
 COORD_OP_METHOD_ID                                 NUMBER(10),
 UOM_ID_SOURCE_OFFSETS                              NUMBER(10),
 UOM_ID_TARGET_OFFSETS                              NUMBER(10),
 INFORMATION_SOURCE                                 VARCHAR2(254),
 DATA_SOURCE                                        VARCHAR2(40),
 SHOW_OPERATION                                     NUMBER(3) not null,
 IS_LEGACY                                          VARCHAR2(5) not null,
 LEGACY_CODE                                        NUMBER(10),
 REVERSE_OP                                         NUMBER(1),
 IS_IMPLEMENTED_FORWARD                             NUMBER(1),
 IS_IMPLEMENTED_REVERSE                             NUMBER(1)) ';
END;
/
select count(*) from mdsys.ext_tab_coord_ops;
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_coord_ops select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_ops:' from dual;
select count(*) from sdo_coord_ops;
MERGE INTO sdo_coord_ops D
   USING (SELECT coord_op_id, coord_op_name, coord_op_type, source_srid, target_srid, coord_tfm_version, coord_op_variant, coord_op_method_id,
                 uom_id_source_offsets, uom_id_target_offsets, information_source, data_source, show_operation, is_legacy, legacy_code,
                 reverse_op, is_implemented_forward, is_implemented_reverse FROM ext_tab_coord_ops) S
   ON (D.coord_op_id = S.coord_op_id)
   WHEN MATCHED THEN update set
     D.coord_op_name          = S.coord_op_name,
     D.coord_op_type          = S.coord_op_type,
     D.source_srid            = S.source_srid,
     D.target_srid            = S.target_srid,
     D.coord_tfm_version      = S.coord_tfm_version,
     D.coord_op_variant       = S.coord_op_variant,
     D.coord_op_method_id     = S.coord_op_method_id,
     D.uom_id_source_offsets  = S.uom_id_source_offsets,
     D.uom_id_target_offsets  = S.uom_id_target_offsets,
     D.information_source     = S.information_source,
     D.data_source            = S.data_source,
     D.show_operation         = S.show_operation,
     D.is_legacy              = S.is_legacy,
     D.legacy_code            = S.legacy_code,
     D.reverse_op             = S.reverse_op,
     D.is_implemented_forward = S.is_implemented_forward,
     D.is_implemented_reverse = S.is_implemented_reverse
   WHEN NOT MATCHED THEN
     INSERT (D.coord_op_id, D.coord_op_name, D.coord_op_type, D.source_srid, D.target_srid, D.coord_tfm_version, D.coord_op_variant, D.coord_op_method_id,
             D.uom_id_source_offsets, D.uom_id_target_offsets, D.information_source, D.data_source, D.show_operation, D.is_legacy, D.legacy_code,
             D.reverse_op, D.is_implemented_forward, D.is_implemented_reverse)
     VALUES (S.coord_op_id, S.coord_op_name, S.coord_op_type, S.source_srid, S.target_srid, S.coord_tfm_version, S.coord_op_variant, S.coord_op_method_id,
             S.uom_id_source_offsets, S.uom_id_target_offsets, S.information_source, S.data_source, S.show_operation, S.is_legacy, S.legacy_code,
             S.reverse_op, S.is_implemented_forward, S.is_implemented_reverse);
select count(*) from sdo_coord_ops;
drop table ext_tab;
CREATE TABLE ext_tab (
 CONCAT_OPERATION_ID			            NUMBER(10) not null,
 SINGLE_OPERATION_ID				    NUMBER(10),
 SINGLE_OP_SOURCE_ID				    NUMBER(10),
 SINGLE_OP_TARGET_ID				    NUMBER(10),
 OP_PATH_STEP					    NUMBER(5))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (concat_operation_id, single_operation_id, single_op_source_id, single_op_target_id, op_path_step))
    LOCATION ('sdo_coord_op_paths.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_op_paths ' || sharing ||' (
 CONCAT_OPERATION_ID                                NUMBER(10) not null,
 SINGLE_OPERATION_ID                                NUMBER(10),
 SINGLE_OP_SOURCE_ID                                NUMBER(10),
 SINGLE_OP_TARGET_ID                                NUMBER(10),
 OP_PATH_STEP                                       NUMBER(5)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_op_paths select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_op_paths:' from dual;
select count(*) from sdo_coord_op_paths;
MERGE INTO sdo_coord_op_paths D
   USING (SELECT concat_operation_id, single_operation_id, single_op_source_id, single_op_target_id, op_path_step FROM ext_tab_op_paths) S
   ON (D.concat_operation_id = S.concat_operation_id and D.op_path_step = S.op_path_step)
   WHEN MATCHED THEN update set
     D.single_operation_id          = S.single_operation_id,
     D.single_op_source_id          = S.single_op_source_id,
     D.single_op_target_id          = S.single_op_target_id
   WHEN NOT MATCHED THEN
     INSERT (D.concat_operation_id, D.single_operation_id, D.single_op_source_id, D.single_op_target_id, D.op_path_step)
     VALUES (S.concat_operation_id, S.single_operation_id, S.single_op_source_id, S.single_op_target_id, S.op_path_step);
select count(*) from sdo_coord_op_paths;
drop table ext_tab;
CREATE TABLE ext_tab (
 SOURCE_SRID				   NUMBER(10) not null,
 COORD_OP_ID				   NUMBER(10) not null,
 TARGET_SRID				   NUMBER(10) not null)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (source_srid, coord_op_id, target_srid))
    LOCATION ('sdo_preferred_ops_system.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_preferred_ops_system ' || sharing ||' (
 SOURCE_SRID                               NUMBER(10) not null,
 COORD_OP_ID                               NUMBER(10) not null,
 TARGET_SRID                               NUMBER(10) not null) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_preferred_ops_system select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_preferred_ops_system:' from dual;
select count(*) from sdo_preferred_ops_system;
MERGE INTO sdo_preferred_ops_system D
   USING (SELECT source_srid, coord_op_id, target_srid FROM ext_tab_preferred_ops_system) S
   ON (D.source_srid = S.source_srid and D.target_srid = S.target_srid)
   WHEN MATCHED THEN update set
     D.coord_op_id          = S.coord_op_id
   WHEN NOT MATCHED THEN
     INSERT (D.source_srid, D.coord_op_id, D.target_srid)
     VALUES (S.source_srid, S.coord_op_id, S.target_srid);
select count(*) from sdo_preferred_ops_system;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_OP_METHOD_ID                        NUMBER(10) not null,
 COORD_OP_METHOD_NAME                      VARCHAR2(50),
 LEGACY_NAME                               VARCHAR2(50),
 REVERSE_OP                                NUMBER(1) not null,
 INFORMATION_SOURCE                        VARCHAR2(254),
 DATA_SOURCE                               VARCHAR2(40),
 IS_IMPLEMENTED_FORWARD                    NUMBER(1) not null,
 IS_IMPLEMENTED_REVERSE                    NUMBER(1) not null)
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_op_method_id, coord_op_method_name, legacy_name, reverse_op, information_source, data_source, is_implemented_forward, is_implemented_reverse))
    LOCATION ('sdo_coord_op_methods.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_op_methods ' || sharing ||' (
 COORD_OP_METHOD_ID                        NUMBER(10) not null,
 COORD_OP_METHOD_NAME                      VARCHAR2(50),
 LEGACY_NAME                               VARCHAR2(50),
 REVERSE_OP                                NUMBER(1) not null,
 INFORMATION_SOURCE                        VARCHAR2(254),
 DATA_SOURCE                               VARCHAR2(40),
 IS_IMPLEMENTED_FORWARD                    NUMBER(1) not null,
 IS_IMPLEMENTED_REVERSE                    NUMBER(1) not null) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_op_methods select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_op_methods:' from dual;
select count(*) from sdo_coord_op_methods;
alter trigger MDSYS.SDO_COORD_OP_METHODS_TRIGGER disable;
MERGE INTO sdo_coord_op_methods D
   USING (SELECT coord_op_method_id, coord_op_method_name, legacy_name, reverse_op, information_source, data_source, is_implemented_forward, is_implemented_reverse FROM ext_tab_op_methods) S
   ON (D.coord_op_method_id = S.coord_op_method_id)
   WHEN MATCHED THEN update set
     D.coord_op_method_name   = S.coord_op_method_name,
     D.legacy_name            = S.legacy_name,
     D.reverse_op             = S.reverse_op,
     D.information_source     = S.information_source,
     D.data_source            = S.data_source,
     D.is_implemented_forward = S.is_implemented_forward,
     D.is_implemented_reverse = S.is_implemented_reverse
   WHEN NOT MATCHED THEN
     INSERT (D.coord_op_method_id, D.coord_op_method_name, D.legacy_name, D.reverse_op, D.information_source, D.data_source, D.is_implemented_forward, D.is_implemented_reverse)
     VALUES (S.coord_op_method_id, S.coord_op_method_name, S.legacy_name, S.reverse_op, S.information_source, S.data_source, S.is_implemented_forward, S.is_implemented_reverse);
alter trigger MDSYS.SDO_COORD_OP_METHODS_TRIGGER enable;
select count(*) from sdo_coord_op_methods;
drop table ext_tab;
CREATE TABLE ext_tab (
 PARAMETER_ID                                       NUMBER(10) not null,
 PARAMETER_NAME                                     VARCHAR2(80),
 INFORMATION_SOURCE                                 VARCHAR2(254),
 DATA_SOURCE                                        VARCHAR2(40),
 UNIT_OF_MEAS_TYPE                                  VARCHAR2(50))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (parameter_id, parameter_name, information_source, data_source, unit_of_meas_type))
    LOCATION ('sdo_coord_op_params.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_op_params ' || sharing ||' (
 PARAMETER_ID                                       NUMBER(10) not null,
 PARAMETER_NAME                                     VARCHAR2(80),
 INFORMATION_SOURCE                                 VARCHAR2(254),
 DATA_SOURCE                                        VARCHAR2(40),
 UNIT_OF_MEAS_TYPE                                  VARCHAR2(50)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_op_params select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_op_params:' from dual;
select count(*) from sdo_coord_op_params;
MERGE INTO sdo_coord_op_params D
   USING (SELECT parameter_id, parameter_name, information_source, data_source, unit_of_meas_type FROM ext_tab_op_params) S
   ON (D.parameter_id = S.parameter_id)
   WHEN MATCHED THEN update set
     D.parameter_name     = S.parameter_name,
     D.information_source = S.information_source,
     D.data_source        = S.data_source,
     D.unit_of_meas_type  = S.unit_of_meas_type
   WHEN NOT MATCHED THEN
     INSERT (D.parameter_id, D.parameter_name, D.information_source, D.data_source, D.unit_of_meas_type)
     VALUES (S.parameter_id, S.parameter_name, S.information_source, S.data_source, S.unit_of_meas_type);
select count(*) from sdo_coord_op_params;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_OP_ID                                        NUMBER(10) not null,
 COORD_OP_METHOD_ID                                 NUMBER(10),
 PARAMETER_ID                                       NUMBER(10) not null,
 PARAMETER_VALUE                                    FLOAT(49),
 PARAM_VALUE_FILE_REF                               VARCHAR2(254),
 UOM_ID                                             NUMBER(10))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_op_id, coord_op_method_id, parameter_id, parameter_value, param_value_file_ref, uom_id))
    LOCATION ('sdo_coord_op_param_vals.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_param_vals ' || sharing ||' (
 COORD_OP_ID                                        NUMBER(10) not null,
 COORD_OP_METHOD_ID                                 NUMBER(10),
 PARAMETER_ID                                       NUMBER(10) not null,
 PARAMETER_VALUE                                    FLOAT(49),
 PARAM_VALUE_FILE_REF                               VARCHAR2(254),
 UOM_ID                                             NUMBER(10)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_param_vals select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_op_param_vals:' from dual;
select count(*) from sdo_coord_op_param_vals;
select count(*) from mdsys.ext_tab_param_vals;
create table mdsys.ext_tab_param_vals_1 as select * from mdsys.ext_tab_param_vals;
MERGE INTO sdo_coord_op_param_vals D
   USING (SELECT coord_op_id, coord_op_method_id, parameter_id, parameter_value, param_value_file_ref, uom_id FROM mdsys.ext_tab_param_vals_1) S
   ON (D.coord_op_id = S.coord_op_id and D.parameter_id = S.parameter_id)
   WHEN MATCHED THEN update set
     D.coord_op_method_id   = S.coord_op_method_id,
     D.parameter_value      = S.parameter_value,
     D.param_value_file_ref = S.param_value_file_ref,
     D.uom_id               = S.uom_id
   WHEN NOT MATCHED THEN
     INSERT (D.coord_op_id, D.coord_op_method_id, D.parameter_id, D.parameter_value, D.param_value_file_ref, D.uom_id)
     VALUES (S.coord_op_id, S.coord_op_method_id, S.parameter_id, S.parameter_value, S.param_value_file_ref, S.uom_id);
select count(*) from sdo_coord_op_param_vals;
drop table ext_tab;
CREATE TABLE ext_tab (
 COORD_OP_METHOD_ID  NUMBER(10) not null,
 PARAMETER_ID        NUMBER(10),
 LEGACY_PARAM_NAME   VARCHAR2(80),
 SORT_ORDER          NUMBER(5) not null,
 PARAM_SIGN_REVERSAL VARCHAR2(3))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (coord_op_method_id, parameter_id, legacy_param_name, sort_order, param_sign_reversal))
    LOCATION ('sdo_coord_op_param_use.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_op_param_use ' || sharing ||' (
 COORD_OP_METHOD_ID  NUMBER(10) not null,
 PARAMETER_ID        NUMBER(10),
 LEGACY_PARAM_NAME   VARCHAR2(80),
 SORT_ORDER          NUMBER(5) not null,
 PARAM_SIGN_REVERSAL VARCHAR2(3)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_op_param_use select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_coord_op_param_use:' from dual;
select count(*) from sdo_coord_op_param_use;
MERGE INTO sdo_coord_op_param_use D
   USING (SELECT coord_op_method_id, parameter_id, legacy_param_name, sort_order, param_sign_reversal FROM ext_tab_op_param_use) S
   ON (D.coord_op_method_id = S.coord_op_method_id and D.sort_order = S.sort_order)
   WHEN MATCHED THEN update set
     D.parameter_id        = S.parameter_id,
     D.legacy_param_name   = S.legacy_param_name,
     D.param_sign_reversal = S.param_sign_reversal
   WHEN NOT MATCHED THEN
     INSERT (D.coord_op_method_id, D.parameter_id, D.legacy_param_name, D.sort_order, D.param_sign_reversal)
     VALUES (S.coord_op_method_id, S.parameter_id, S.legacy_param_name, S.sort_order, S.param_sign_reversal);
select count(*) from sdo_coord_op_param_use;
drop table ext_tab;
CREATE TABLE ext_tab (
 CS_NAME   VARCHAR2(80),
 SRID      NUMBER(38) not null,
 AUTH_SRID NUMBER(38),
 AUTH_NAME VARCHAR2(256),
 WKTEXT    VARCHAR2(2046),
 WKTEXT3D  VARCHAR2(4000))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (cs_name, srid, auth_srid, auth_name, wktext char(2046), wktext3d char(4000)))
    LOCATION ('cs_srs.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_cs_srs ' || sharing ||' (
 CS_NAME   VARCHAR2(80),
 SRID      NUMBER(38) not null,
 AUTH_SRID NUMBER(38),
 AUTH_NAME VARCHAR2(256),
 WKTEXT    VARCHAR2(2046),
 WKTEXT3D  VARCHAR2(4000)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_cs_srs select * from ext_tab;
      commit;
   end if;
end;
/
select 'cs_srs:' from dual;
select count(*) from cs_srs;
MERGE INTO sdo_cs_srs D
   USING (SELECT cs_name, srid, auth_srid, auth_name, wktext, wktext3d FROM ext_tab_cs_srs) S
   ON (D.srid = S.srid)
   WHEN MATCHED THEN update set
     D.cs_name   = S.cs_name,
     D.auth_srid = S.auth_srid,
     D.auth_name = S.auth_name,
     D.wktext    = replace(S.wktext, '\n', '
'),
     D.wktext3d  = replace(S.wktext3d, '\n', '
')
   WHEN NOT MATCHED THEN
     INSERT (D.cs_name, D.srid, D.auth_srid, D.auth_name, D.wktext, D.wktext3d)
     VALUES (S.cs_name, S.srid, S.auth_srid, S.auth_name, replace(S.wktext, '\n', '
'), replace(S.wktext3d, '\n', '
'));
select count(*) from cs_srs;
drop table ext_tab;
CREATE TABLE ext_tab (
 PRIME_MERIDIAN_ID   NUMBER(10) not null,
 PRIME_MERIDIAN_NAME VARCHAR2(80) not null,
 GREENWICH_LONGITUDE FLOAT(49),
 UOM_ID              NUMBER(10),
 INFORMATION_SOURCE  VARCHAR2(254),
 DATA_SOURCE         VARCHAR2(254))
ORGANIZATION EXTERNAL (
  TYPE oracle_loader
  DEFAULT DIRECTORY sdo_dir_admin
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    TERRITORY 'america'
    DISABLE_DIRECTORY_LINK_CHECK
        NOLOGFILE 
    FIELDS TERMINATED BY ';;;'
    MISSING FIELD VALUES ARE NULL
    REJECT ROWS WITH ALL NULL FIELDS
    (prime_meridian_id, prime_meridian_name, greenwich_longitude, uom_id, information_source, data_source))
    LOCATION ('sdo_prime_meridians.txt')
  )
PARALLEL
REJECT LIMIT 0
NOMONITORING;
DECLARE
  con_id number := sys_context('userenv', 'con_id');
  sharing varchar2(32);
BEGIN
  sharing := ' sharing=object ';
  execute immediate '
CREATE TABLE ext_tab_prime_meridians ' || sharing ||' (
 PRIME_MERIDIAN_ID   NUMBER(10) not null,
 PRIME_MERIDIAN_NAME VARCHAR2(80) not null,
 GREENWICH_LONGITUDE FLOAT(49),
 UOM_ID              NUMBER(10),
 INFORMATION_SOURCE  VARCHAR2(254),
 DATA_SOURCE         VARCHAR2(254)) ';
END;
/
declare
begin
   if (sys_context('userenv', 'con_id')<=1) then
      insert into ext_tab_prime_meridians select * from ext_tab;
      commit;
   end if;
end;
/
select 'sdo_prime_meridians:' from dual;
select count(*) from sdo_prime_meridians;
MERGE INTO sdo_prime_meridians D
   USING (SELECT prime_meridian_id, prime_meridian_name, greenwich_longitude, uom_id, information_source, data_source FROM ext_tab_prime_meridians) S
   ON (D.prime_meridian_id = S.prime_meridian_id)
   WHEN MATCHED THEN update set
     D.prime_meridian_name = S.prime_meridian_name,
     D.greenwich_longitude = S.greenwich_longitude,
     D.uom_id              = S.uom_id,
     D.information_source  = S.information_source,
     D.data_source         = S.data_source
   WHEN NOT MATCHED THEN
     INSERT (D.prime_meridian_id, D.prime_meridian_name, D.greenwich_longitude, D.uom_id, D.information_source, D.data_source)
     VALUES (S.prime_meridian_id, S.prime_meridian_name, S.greenwich_longitude, S.uom_id, S.information_source, S.data_source);
select count(*) from sdo_prime_meridians;
drop table ext_tab;
commit;
SELECT * FROM SDO_PREFERRED_OPS_SYSTEM ORDER BY COORD_OP_ID;
SELECT * FROM SDO_PREFERRED_OPS_USER ORDER BY COORD_OP_ID;
alter table mdsys.sdo_ellipsoids enable constraint ELLIPSOID_FOREIGN_UOM;
alter table mdsys.sdo_datums enable constraint DATUM_FOREIGN_MERIDIAN;
alter table mdsys.sdo_units_of_measure enable constraint UNIT_OF_MEASURE_FOREIGN_UOM;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_CS;
alter table mdsys.sdo_coord_axes enable constraint COORD_AXIS_FOREIGN_AXIS;
alter table mdsys.sdo_coord_ops enable constraint COORD_OPERATION_FOREIGN_METHOD;
alter table mdsys.sdo_coord_op_param_vals enable constraint COORD_OP_PARA_VAL_FOREIGN_UOM;
alter table mdsys.sdo_datums enable constraint DATUM_FOREIGN_LEGACY;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_DATUM;
alter table mdsys.sdo_coord_ops enable constraint COORD_OPERATION_FOREIGN_TARGET;
alter table mdsys.sdo_coord_op_param_vals enable constraint COORD_OP_PARA_VAL_FOREIGN_OP;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_PROJ;
alter table mdsys.sdo_coord_ops enable constraint COORD_OPERATION_FOREIGN_SOURCE;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_LEGACY;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_GEOG;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_HORIZ;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_VERT;
alter table mdsys.sdo_coord_ref_sys enable constraint COORD_REF_SYS_FOREIGN_CS;
alter table MDSYS.SDO_COORD_REF_SYS add CONSTRAINT CRS_CHECK_COMPOUND CHECK (
          (IS_VALID = 'FALSE') OR
          (IS_LEGACY = 'TRUE') OR
          (coord_ref_sys_kind <> 'COMPOUND') OR
          (
            (     SOURCE_GEOG_SRID    IS NULL) AND
            (     PROJECTION_CONV_ID  IS NULL) AND
            (NOT  CMPD_HORIZ_SRID     IS NULL) AND
            (NOT  CMPD_VERT_SRID      IS NULL) AND
            (     COORD_SYS_ID        IS NULL) AND
            (     DATUM_ID            IS NULL)
          )
        );
commit;
set timing off
@@sdoepsgl4.plb
@?/rdbms/admin/sqlsessend.sql

OHA YOOOO