Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature drop oracle locator #154

Merged
merged 2 commits into from
Nov 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The schema of the 3D City Database is based on the [OGC City Geography Markup La
an international [standard](http://www.opengeospatial.org/standards/citygml) for representing and exchanging
virtual 3D city models issued by the [Open Geospatial Consortium (OGC)](http://www.opengeospatial.org/).

The 3D City Database has been realized as PostgreSQL/PostGIS and Oracle Spatial/Locator database schema,
The 3D City Database has been realized as PostgreSQL/PostGIS and Oracle database schema,
supporting following key features:

* Full support for CityGML versions 2.0 and 1.0
Expand Down Expand Up @@ -57,7 +57,7 @@ You can download the latest release as well as previous releases from the
System requirements
-------------------
* PostgreSQL DBMS >= 9.6 with PostGIS extension >= 2.3
* Oracle DBMS >= 10g R2 with Spatial or Locator option
* Oracle DBMS >= 19c
* PolarDB for PostgresSQL 1.1 with Ganos extension >= 4.6

Documentation and literature
Expand Down Expand Up @@ -101,7 +101,6 @@ The setup procedure requires the following mandatory user inputs:
For Oracle, two additional inputs are required:

4) Decision whether the database instance should be versioning enabled,
5) Whether the Oracle DBMS runs with Locator or Spatial license option.

Afterwards, the script will start the setup procedure and invoke additional
SQL scripts in the background. Please refer to the [user manual](https://3dcitydb-docs.readthedocs.io/en/version-2021.1/)
Expand Down
15 changes: 3 additions & 12 deletions oracle/DockerScripts/3dcitydb-initdb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,6 @@ else
VERSIONING="$VERSIONING"
fi

# DBVERSION -------------------------------------------------------------------
if [ -z ${DBVERSION+x} ]; then
DBVERSION="s"
else
DBVERSION="$DBVERSION"
fi

# DBUSER
if [ -z ${DBUSER+x} ]; then
DBUSER="citydb"
Expand All @@ -88,14 +81,12 @@ echo "CREATE USER $DBUSER identified by $ORACLE_PWD;
echo "Creating user $DBUSER ... done!"
echo

# Enable GeoRaster at the Schema Level for Oracle Spatial (required since Oracle 19c)
if [ "${DBVERSION}" = "s" ] || [ "${DBVERSION}" = "S" ]; then
echo "EXECUTE SDO_GEOR_ADMIN.ENABLEGEORASTER;" | sqlplus "$DBUSER"/"$ORACLE_PWD"@localhost:1521/"$ORACLE_PDB"
fi
# Enable GeoRaster (required since Oracle 19c)
echo "EXECUTE SDO_GEOR_ADMIN.ENABLEGEORASTER;" | sqlplus "$DBUSER"/"$ORACLE_PWD"@localhost:1521/"$ORACLE_PDB"

# Setup 3DCityDB schema -------------------------------------------------------
echo "Setting up 3DCityDB schema in $DBUSER ..."
sqlplus -S -L "$DBUSER"/"$ORACLE_PWD"@localhost:1521/"$ORACLE_PDB" @CREATE_DB.sql "${SRID}" "${GMLSRSNAME}" "${VERSIONING}" "${DBVERSION}"
sqlplus -S -L "$DBUSER"/"$ORACLE_PWD"@localhost:1521/"$ORACLE_PDB" @CREATE_DB.sql "${SRID}" "${GMLSRSNAME}" "${VERSIONING}"
echo "Setting up 3DCityDB schema in $DBUSER ...done!"
echo
echo "# Setting up 3DCityDB ... done! ################################################"
Expand Down
73 changes: 9 additions & 64 deletions oracle/SQLScripts/CREATE_DB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ SET VER OFF
DEFINE SRSNO=&1;
DEFINE GMLSRSNAME=&2;
DEFINE VERSIONING=&3;
DEFINE DBVERSION=&4;

-- check if the chosen SRID is provided by the MDSYS.CS_SRS table
VARIABLE SRID NUMBER;
Expand All @@ -57,54 +56,21 @@ column script new_value HINTFILE2 print
SELECT :HINTFILE script FROM dual;
@@&HINTFILE2

-- check for SDO_GEORASTER support
VARIABLE GEORASTER_SUPPORT NUMBER;
BEGIN
:GEORASTER_SUPPORT := 0;
IF (upper('&DBVERSION')='S') THEN
SELECT COUNT(*) INTO :GEORASTER_SUPPORT FROM ALL_SYNONYMS
WHERE SYNONYM_NAME='SDO_GEORASTER';
END IF;

IF :GEORASTER_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The data type SDO_GEORASTER is not available for this database. Raster relief tables will not be created.');
END IF;
END;
/
-- enable GeoRaster support
exec SDO_GEOR_ADMIN.enableGeoRaster;

-- create tables
column script new_value TABLES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'SCHEMA/TABLES/TABLES_GEORASTER.sql'
ELSE 'SCHEMA/TABLES/TABLES.sql'
END AS script
FROM dual;

@@&TABLES
@@SCHEMA/TABLES/TABLES_GEORASTER.sql

-- populate database SRS
INSERT INTO DATABASE_SRS(SRID,GML_SRS_NAME) VALUES (&SRSNO,'&GMLSRSNAME');
COMMIT;

-- create sequences
column script new_value SEQUENCES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'SCHEMA/SEQUENCES/SEQUENCES_GEORASTER.sql'
ELSE 'SCHEMA/SEQUENCES/SEQUENCES.sql'
END AS script
FROM dual;

@@&SEQUENCES
@@SCHEMA/SEQUENCES/SEQUENCES_GEORASTER.sql

-- activate constraints
column script new_value CONSTRAINTS
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'SCHEMA/CONSTRAINTS/CONSTRAINTS_GEORASTER.sql'
ELSE 'SCHEMA/CONSTRAINTS/CONSTRAINTS.sql'
END AS script
FROM dual;

@@&CONSTRAINTS
@@SCHEMA/CONSTRAINTS/CONSTRAINTS_GEORASTER.sql

-- citydb packages
SELECT 'Creating packages ''citydb_util'', ''citydb_constraint'', ''citydb_idx'', ''citydb_srs'', ''citydb_stat'', ''citydb_envelope'', ''citydb_delete_by_lineage'', ''citydb_delete'', and corresponding types' as message from DUAL;
Expand All @@ -115,24 +81,10 @@ SELECT 'Creating packages ''citydb_util'', ''citydb_constraint'', ''citydb_idx''
@@CITYDB_PKG/STATISTICS/STAT.sql;

-- create delete scripts
column script new_value DELETE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'CITYDB_PKG/DELETE/DELETE_GEORASTER.sql'
ELSE 'CITYDB_PKG/DELETE/DELETE.sql'
END AS script
FROM dual;

@@&DELETE
@@CITYDB_PKG/DELETE/DELETE_GEORASTER.sql

-- create envelope scripts
column script new_value ENVELOPE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql'
ELSE 'CITYDB_PKG/ENVELOPE/ENVELOPE.sql'
END AS script
FROM dual;

@@&ENVELOPE
@@CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql

SELECT 'Packages ''citydb_util'', ''citydb_constraint'', ''citydb_idx'', ''citydb_srs'', ''citydb_stat'', ''citydb_envelope'', ''citydb_delete_by_lineage'', and ''citydb_delete'' created' as message from DUAL;

Expand All @@ -146,14 +98,7 @@ exec citydb_constraint.set_schema_sdo_metadata(USER);
COMMIT;

-- build indexes
column script new_value SIMPLE_INDEXES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'SCHEMA/INDEXES/SIMPLE_INDEXES_GEORASTER.sql'
ELSE 'SCHEMA/INDEXES/SIMPLE_INDEXES.sql'
END AS script
FROM dual;

@@&SIMPLE_INDEXES
@@SCHEMA/INDEXES/SIMPLE_INDEXES_GEORASTER.sql
@@SCHEMA/INDEXES/SPATIAL_INDEXES.sql

-- activate versioning if requested
Expand All @@ -164,7 +109,7 @@ SELECT
END AS script
FROM dual;

@@&VERSIONING &DBVERSION
@@&VERSIONING

SHOW ERRORS;
COMMIT;
Expand Down
5 changes: 1 addition & 4 deletions oracle/SQLScripts/DROP_DB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,8 @@ SET SERVEROUTPUT ON
SET FEEDBACK ON
SET VER OFF

-- parge arguments
DEFINE DBVERSION=&1;

-- disable versioning (if it was enabled before)
@@UTIL/VERSIONING/DISABLE_VERSIONING.sql &DBVERSION
@@UTIL/VERSIONING/DISABLE_VERSIONING.sql

SELECT 'Dropping 3DCityDB tables and user objects' as message from DUAL;
BEGIN
Expand Down
27 changes: 12 additions & 15 deletions oracle/SQLScripts/MIGRATION/V2_to_V4/MIGRATE_DB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ END;
/

DEFINE TEXOP=&1;
DEFINE DBVERSION=&2;
DEFINE V2USER=&3;
DEFINE V2USER=&2;

VARIABLE MGRPBATCHFILE VARCHAR2(50);

Expand All @@ -45,17 +44,15 @@ BEGIN
END;
/

-- check for SDO_GEORASTER support
VARIABLE GEORASTER_SUPPORT NUMBER;
-- check for relief support
VARIABLE RELIEF_SUPPORT NUMBER;
BEGIN
:GEORASTER_SUPPORT := 0;
IF (upper('&DBVERSION')='S') THEN
SELECT COUNT(*) INTO :GEORASTER_SUPPORT FROM ALL_SYNONYMS
WHERE SYNONYM_NAME='SDO_GEORASTER';
END IF;
:RELIEF_SUPPORT := 0;
SELECT COUNT(*) INTO :RELIEF_SUPPORT FROM USER_TABLES
WHERE TABLE_NAME='RELIEF';

IF :GEORASTER_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The data type SDO_GEORASTER is not available for this database. Raster relief tables will not be created.');
IF :RELIEF_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The relief tables are not available for this database and will therefore not be migrated.');
END IF;
END;
/
Expand Down Expand Up @@ -105,7 +102,7 @@ BEGIN
END;
/
BEGIN
IF :GEORASTER_SUPPORT <> 0 THEN
IF :RELIEF_SUPPORT <> 0 THEN
:MGRPBATCHFILE := 'CITYDB_MIGRATE_GEORASTER';
END IF;
END;
Expand Down Expand Up @@ -157,7 +154,7 @@ EXECUTE CITYDB_MIGRATE.fillOpeningToThemSurfaceTable(upper('&V2USER'));
EXECUTE CITYDB_MIGRATE.fillPlantCoverTable(upper('&V2USER'));
EXECUTE CITYDB_MIGRATE.fillReliefComponentTable(upper('&V2USER'));
BEGIN
IF :GEORASTER_SUPPORT <> 0 THEN
IF :RELIEF_SUPPORT <> 0 THEN
EXECUTE IMMEDIATE 'CALL CITYDB_MIGRATE_GEORASTER.fillRasterReliefTable(:1)' USING upper('&V2USER');
END IF;
END;
Expand Down Expand Up @@ -219,7 +216,7 @@ END;
-- build indexes
column script new_value SIMPLE_INDEXES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN '../../SCHEMA/INDEXES/SIMPLE_INDEXES_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN '../../SCHEMA/INDEXES/SIMPLE_INDEXES_GEORASTER.sql'
ELSE '../../SCHEMA/INDEXES/SIMPLE_INDEXES.sql'
END AS script
FROM dual;
Expand All @@ -238,7 +235,7 @@ END;
/
BEGIN
EXECUTE IMMEDIATE 'DROP PACKAGE CITYDB_MIGRATE';
IF :GEORASTER_SUPPORT <> 0 THEN
IF :RELIEF_SUPPORT <> 0 THEN
EXECUTE IMMEDIATE 'DROP PACKAGE CITYDB_MIGRATE_GEORASTER';
END IF;
END;
Expand Down
28 changes: 12 additions & 16 deletions oracle/SQLScripts/MIGRATION/V3_to_V4/MIGRATE_DB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,15 @@ SET SERVEROUTPUT ON
SET FEEDBACK ON
SET VER OFF

DEFINE DBVERSION=&2;

-- check for SDO_GEORASTER support
VARIABLE GEORASTER_SUPPORT NUMBER;
-- check for relief support
VARIABLE RELIEF_SUPPORT NUMBER;
BEGIN
:GEORASTER_SUPPORT := 0;
IF (upper('&DBVERSION')='S') THEN
SELECT COUNT(*) INTO :GEORASTER_SUPPORT FROM ALL_SYNONYMS
WHERE SYNONYM_NAME='SDO_GEORASTER';
END IF;
:RELIEF_SUPPORT := 0;
SELECT COUNT(*) INTO :RELIEF_SUPPORT FROM USER_TABLES
WHERE TABLE_NAME='RELIEF';

IF :GEORASTER_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The data type SDO_GEORASTER is not available for this database. Raster relief tables will not be created.');
IF :RELIEF_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The raster relief tables are not available for this database and will therefore not be migrated.');
END IF;
END;
/
Expand All @@ -54,7 +50,7 @@ SELECT 'Create sequences that are new in v4 ...' as message from DUAL;
SELECT 'Create new tables of v4 and alter existing tables ...' as message from DUAL;
column script new_value TABLES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'TABLES_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN 'TABLES_GEORASTER.sql'
ELSE 'TABLES.sql'
END AS script
FROM dual;
Expand Down Expand Up @@ -97,7 +93,7 @@ SELECT 'Creating packages ''citydb_util'', ''citydb_constraint'', ''citydb_idx''
-- create delete scripts
column script new_value DELETE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN '../../CITYDB_PKG/DELETE/DELETE_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN '../../CITYDB_PKG/DELETE/DELETE_GEORASTER.sql'
ELSE '../../CITYDB_PKG/DELETE/DELETE.sql'
END AS script
FROM dual;
Expand All @@ -107,7 +103,7 @@ FROM dual;
-- create envelope scripts
column script new_value ENVELOPE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN '../../CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN '../../CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql'
ELSE '../../CITYDB_PKG/ENVELOPE/ENVELOPE.sql'
END AS script
FROM dual;
Expand All @@ -120,7 +116,7 @@ SELECT 'Packages ''citydb_util'', ''citydb_constraint'', ''citydb_idx'', ''cityd
SELECT 'Update primary keys, foreign keys and not null constraints ...' as message from DUAL;
column script new_value CONSTRAINTS
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'CONSTRAINTS_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN 'CONSTRAINTS_GEORASTER.sql'
ELSE 'CONSTRAINTS.sql'
END AS script
FROM dual;
Expand All @@ -130,7 +126,7 @@ FROM dual;
SELECT 'Update indexes ...' as message from DUAL;
column script new_value INDEXES
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN 'INDEXES_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN 'INDEXES_GEORASTER.sql'
ELSE 'INDEXES.sql'
END AS script
FROM dual;
Expand Down
20 changes: 9 additions & 11 deletions oracle/SQLScripts/MIGRATION/V4_UPGRADE/DO_UPGRADE.sql
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,15 @@ SET SERVEROUTPUT ON
SET FEEDBACK ON
SET VER OFF

-- check for SDO_GEORASTER support
VARIABLE GEORASTER_SUPPORT NUMBER;
-- check for relief support
VARIABLE RELIEF_SUPPORT NUMBER;
BEGIN
:GEORASTER_SUPPORT := 0;
IF (upper('&DBVERSION')='S') THEN
SELECT COUNT(*) INTO :GEORASTER_SUPPORT FROM ALL_SYNONYMS
WHERE SYNONYM_NAME='SDO_GEORASTER';
END IF;
:RELIEF_SUPPORT := 0;
SELECT COUNT(*) INTO :RELIEF_SUPPORT FROM USER_TABLES
WHERE TABLE_NAME='RELIEF';

IF :GEORASTER_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The data type SDO_GEORASTER is not available for this database. Raster relief tables will not be created.');
IF :RELIEF_SUPPORT = 0 THEN
dbms_output.put_line('NOTE: The relief tables are not available for this database and will therefore not be upgraded.');
END IF;
END;
/
Expand Down Expand Up @@ -99,7 +97,7 @@ END;
-- create delete scripts
column script new_value DELETE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN '../../CITYDB_PKG/DELETE/DELETE_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN '../../CITYDB_PKG/DELETE/DELETE_GEORASTER.sql'
ELSE '../../CITYDB_PKG/DELETE/DELETE.sql'
END AS script
FROM dual;
Expand All @@ -109,7 +107,7 @@ FROM dual;
-- create envelope scripts
column script new_value ENVELOPE
SELECT
CASE WHEN :GEORASTER_SUPPORT <> 0 THEN '../../CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql'
CASE WHEN :RELIEF_SUPPORT <> 0 THEN '../../CITYDB_PKG/ENVELOPE/ENVELOPE_GEORASTER.sql'
ELSE '../../CITYDB_PKG/ENVELOPE/ENVELOPE.sql'
END AS script
FROM dual;
Expand Down
1 change: 0 additions & 1 deletion oracle/SQLScripts/MIGRATION/V4_UPGRADE/UPGRADE_DB.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ SET SERVEROUTPUT ON
SET FEEDBACK ON
SET VER OFF

DEFINE DBVERSION=&1;
DEFINE NEW_MAJOR=4;
DEFINE NEW_MINOR=3;
DEFINE NEW_REVISION=0;
Expand Down
Loading