MINI MINI MANI MO
@@?/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