FDO King.Oracle provider

King.Oracle is Open Source FDO provider for Oracle. Aim is to create a provider which will support Oracle Locator/Spatial and it will be designed just for Oracle.

This project is open source project on OSGeo.org under http://fdo.osgeo.org/fdooracle/index.html You are free to use it. Download...


Main features

  • Support for Oracle 11g, 10G, Oracle XE and Oracle 9i
  • Optimized for Oracle
  • Using plain Oracle tables and views
  • Can be used inside AutoCAD MAP 3D to edit and query Oracle data
  • Fast

Flash Movie: Using Open Source King.Oracle provider with Oracle XE, Autodesk MAP and MapGuide

How King.Oracle uses Oracle Spatial

Using KingFdoClass Table

Download King.Oracle


Version Changes:

Version 0.8.28 :

Version 0.8.27 :

  • Fix for: Ticket #683 - MultiPolygons Create Dirty FGF
  • Added BLOB/CLOB property creation in Apply Schema
  • Fix: Provider crashes when there is illegal big value in spatial index MBR (spatial index was unusable in this case as well)
  • Fix: for ArcSDE geometry converter ( was wrongly creating holes in polygons) - Thanks Chrispin
  • sdo geometries polygon and multipolygon which elem info started with inner polygon are converted to fdo geometries

Version 0.8.23 :

  • Fix for NULL values insert
  • CLOB/BLOB read

Version 0.8.21 :

  • NUMERIC with scale 0 is converted to IN64 for precision bigger then 19

Version 0.8.20 :

  • fixed Intersect and EnvelopeIntersect for Oracle 9i
  • Apply, Describe schema changes for INT16,INT32 and INT64
  • added unittests for tickets #570 and #650

Version 0.8.19 :

  • set hasElevation and hasMeasure attributes of FDO Class geometry property depending on Oracle metadata
  • support for FDO Multi Geometry and Oracle GType 4

Version 0.8.18 :

  • Direct SDE improvements; use of SDE index table
  • FDO 3.5

Version 0.8.15 :

  • Added support for SELECT DISTINCT
  • Fix issue with detecting primary key for tables from other schemas
  • Fix issue with NULL SRID when spatial condition is used and geometry column was not in select columns list

Version 0.8.14 :

  • Fix for converting curved polygons from FDO format into Oracle geometry

Version 0.8.13 :

Version 0.8.10 :

  • Changed from per command to per connection threading model

Version 0.8.9 :

  • Allow NULL for Dim Name in SDO_GEOM_METADATA

Version 0.8.8 :

Version 0.8.7 :

  • Log disabled

Version 0.8.6 :

  • bug fix reading Oracle DATE column type

Versionn 0.8.5 :

  • Improved performance - very significant improvement
  • Support for SelectAggregate
  • FDO schema creation is now much faster (when OracleScema=UserName)
  • Reintroduced schema caching
  • Full Unicode support
  • Using OCI interface

Version 0.7.4 :

  • Solved issue with read/write MULTIPOINT geometry
  • Support for UTF16 Character Set
  • Solved issue with FDO Schema description for tables with more spatial indexes

Version 0.7.3 :

  • Using Oracle Instant Client
  • Bug Fixes - Memory Leak Fix

Version 0.7.1 :

  • Using again Oracle client
  • Support for min/max function's which are used in Studio in dialog for theaming layers.

Version 0.7.0 :

  • Solved issue with multithreading support
  • Support for concurrent multi-user Insert/Update/Delete
  • Support for selecting points from "KingFdoClass"
  • Build with Oracle

Version 0.6.5 :

  • Added Support for inserting/updating curved geometries: CurvedString, CurvedPolygon, MultiCurvedString, MultiCurvedPolygon
  • Support for MapGuide 1.2 ( FDO 3.2.2 )

Version 0.6.4 :

  • Added for batch insert to use Oracle Sequence if identity column is not set or is null.
    If identity column is not null then it will use that column value and it will reset Oracle sequence accordingly.
  • Oracle with geometries with GType Null will not cause MG to stop
  • Use ApplySchema for Classes without Geometry Property
  • FeatureReader will throw exception for invalid geometries.
  • Issue fixed for some types of curved geometries

Version 0.6.3 :

  • Issue fixed for Oracle 9.2
  • Fixed issue with multi compound polygons ( could cause that whole layer in MG wasn't visible)
  • Fix for non-English SDO_METADATA
  • Fix for accessing Feature Reader after Inserting Geometries

Version 0.6.2 :

  • New KingFdoClass Table to define FDO classes
    • Use of Oracle Views as FDO Classes
    • Overriding FDO class Attributes like: Identity, Layer Geometry Type, Name, Oracle Sequence
    • Create FDO Class from Tables/Views without geometry column
    • Create FDO Class with points defined in columns with numbers X, Y and/or Z
    more Using KingFdoClass Table
  • Oracle NUMBER without scale is now cast to FDO DECIMAL not INT
  • Insert Point trough provider - bug fixed
  • Insert Date - fixed

Version 0.5.1 features:

  • Support for FDO 3.2 ( MapGuide Open Source 1.1 )
    For MapGuide Enterprise 2007 or Autodesk Map 2007 use version 0.4.4 (FDO 3.1)

Version 0.4.4 features:

  • Support for Table sequences and Batch inserts
  • Solved Issue - not closing all Oracle statements

Version 0.4.3 features:

  • Support for Insert, Update, Delete command
  • Provider will Recognize correct geometry type of layer (point, line, surface) and display it in MapGuide
  • Support for ApplySchema command
  • Oracle statements optimization ( sql statements sended to Oracle are parameterized )
  • Added support for batch insert's
  • Perfomance - fetching non-geometry data
  • MultiPolygon - there was one forgotten case in switch
  • Issue with NULL geometries - solved
  • Support for Table sequences and inserts
  • Support for Ordering in Select
  • Tested with MG Ent SP1 and Map 2007 SP3

Version 0.3.3 features:

  • Support for Spatial Views
    It will display views based on spatial tables.
    Views needs to be added into sdo_geom_metadata for provider to find them

Version 0.3.2 features:

  • Support for Oracle 9i
    Tested querying data and schema creation on 9.2.
  • Support for Geodetic Coordinate system
    Uses optimized rectangle for envelope queries, so it should work even for whole earth queries.

Version 0.3.1 features:

  • Added support for spatial context and layer extent
    It will report spatial context and layer extend to MapGuide.
    So when you create layer it should became visible immediately
  • Added Filter and expression processing support
    You can set filter when query data. It can be spatial or/and attribute filter
  • Support for all spatial query types
    EnvelopeIntersect, Intersects, Contains, Crosses, Disjoint, Overlaps, Touches, Within, CoveredBy ,Inside ,Equals
  • Added support for executing any sql commands
    Using FDOISQLCommand or MgFeatureService::ExecuteSqlQuery you can run any sql command against Oracle database. You can read/write spatial geometries and attributes.
  • Changed Connection properties names for Service and Username
    Bad: Existing data connections needs to be reset
    Good: Provider can be used in Autodesk Map 2007. You can use Oracle XE with MAP.
  • New connection property OracleSchema
    If it is empty than it will look in all Oracle Schemas for spatial tables.
    If you set this then it will look in just that schema
  • Build with new version of FDO 3.1 .R70 (MG 1.0.2)

Version 0.2.1 features:

  • support for curves (arc strings,polygons), multipoint, multi line , multi polygon example
  • creates FDO classes from all geometry tables and views on which user have right's
  • implements Oracle Connection Pooling
  • support for multiple connections to multiple Oracle instances could help to overcome Oracle XE 4GB limit per instance

Version 0.1.1 features:

  • creates FDO classes from oracle tables found in USER_SDO_GEOM_METADATA
  • support for point, line and polygon
  • creates FDO class identifier from primary key of Oracle table (if one exists)
  • Provider is not reporting Spatial context ( arbitrary coordinate system and you need to setup initial view in map to see data)
  • first testing shows that it is fast ( 35.000 polylines in 6-7 sec. ) as MapGuide 6.5 (8-9 sec) and creating initial classes doesn't take too long

Testing Platform and versions:

  • MG OS 1.0.2, MG Ent SP1
  • MapGuide Open Source (my build)
  • Open Source Setup (1.0.1 ) and Enterprise v1.0.0.17804
  • Oracle Database: ,, 10g Express Edition (Oracle XE)
  • Oracle Client 10.2 and Oracle Instant Client 10.2
  • FDO 3.1
  • FDO 3.1 R70
  • windows xp
  • my hardware is desktop machine ( running several virtual machines for oracle server, MG server, studio)

If you are interested in provider ( testing, comments, development,..) please send email.