Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/DBWS/OracleUseCases"

Line 5: Line 5:
 
API <code>java.sql.DatabaseMetaData</code> suffers from well-documented problems of accuracy and scope <sup>1</sup>).
 
API <code>java.sql.DatabaseMetaData</code> suffers from well-documented problems of accuracy and scope <sup>1</sup>).
 
By doing so, additional use-cases can be supported:
 
By doing so, additional use-cases can be supported:
* Advanced JDBC types
+
* Advanced JDBC types as arguments to Stored Procedure calls
 
**Object Types
 
**Object Types
 
::<code>java.sql.Struct</code>'s are realized in Oracle using proprietary types (<code>oracle.sql.STRUCT</code>) and APIs that are encapsulated in EclipseLink's <code>DatabasePlatform</code> (specifically <code>org.eclipse.persistence.platform.database.oracle.Oracle8Platform</code> or higher)
 
::<code>java.sql.Struct</code>'s are realized in Oracle using proprietary types (<code>oracle.sql.STRUCT</code>) and APIs that are encapsulated in EclipseLink's <code>DatabasePlatform</code> (specifically <code>org.eclipse.persistence.platform.database.oracle.Oracle8Platform</code> or higher)
 
**Array Types
 
**Array Types
 
::<code>java.sql.Array</code>'s are realized in Oracle using proprietary types (<code>oracle.sql.VARRAY</code>) and APIs that are encapsulated in EclipseLink's <code>DatabasePlatform</code> (specifically <code>org.eclipse.persistence.platform.database.oracle.Oracle8Platform</code> or higher)  
 
::<code>java.sql.Array</code>'s are realized in Oracle using proprietary types (<code>oracle.sql.VARRAY</code>) and APIs that are encapsulated in EclipseLink's <code>DatabasePlatform</code> (specifically <code>org.eclipse.persistence.platform.database.oracle.Oracle8Platform</code> or higher)  
* Advanced PL/SQL types
+
* Advanced PL/SQL types as arguments to Stored Procedure calls
 
**Record types
 
**Record types
 
**Collection types
 
**Collection types

Revision as of 16:17, 17 December 2009

Supported Use-Cases for Oracle Platforms

All of the use-cases support for non-Oracle Platforms are supported on Oracle

The design-time utility DBWSBuilder uses custom Data Dictionary query for the Oracle Platform (the JDBC metadata API java.sql.DatabaseMetaData suffers from well-documented problems of accuracy and scope 1). By doing so, additional use-cases can be supported:

  • Advanced JDBC types as arguments to Stored Procedure calls
    • Object Types
java.sql.Struct's are realized in Oracle using proprietary types (oracle.sql.STRUCT) and APIs that are encapsulated in EclipseLink's DatabasePlatform (specifically org.eclipse.persistence.platform.database.oracle.Oracle8Platform or higher)
    • Array Types
java.sql.Array's are realized in Oracle using proprietary types (oracle.sql.VARRAY) and APIs that are encapsulated in EclipseLink's DatabasePlatform (specifically org.eclipse.persistence.platform.database.oracle.Oracle8Platform or higher)
  • Advanced PL/SQL types as arguments to Stored Procedure calls
    • Record types
    • Collection types

1 Compliance to the meta-data APIs available through the java.sql.DatabaseMetaData is weak - no vendor implements the APIs fully, nor in a standard fashion. For example, the simple act of getting the names of available databases is different across platforms: on Oracle the getSchemas method is used while for DB2/Sybase/MS SQLServer the getCatalogs method is used. Another example of cross-platform meta-data issues is the getColumns method: for PostgreSQL, the name of the table must be lower-case; for Oracle, it must be upper-case; others support mixed-case. link is a case-study of some of the issues.

Back to the top