Class DBMSHandlerOracle

java.lang.Object
org.apache.empire.dbms.DBMSHandlerBase
org.apache.empire.dbms.oracle.DBMSHandlerOracle
All Implemented Interfaces:
DBMSHandler

public class DBMSHandlerOracle extends DBMSHandlerBase
This class provides support for the Oracle database system.
Oracle Version 9 or higher is required.
  • Field Details

  • Constructor Details

    • DBMSHandlerOracle

      public DBMSHandlerOracle()
      Constructor for the Oracle database dbms.
  • Method Details

    • isOracle8Compatibilty

      public boolean isOracle8Compatibilty()
    • setOracle8Compatibilty

      public void setOracle8Compatibilty(boolean oracle8Compatibilty)
    • getBooleanType

      public DBMSHandlerOracle.BooleanType getBooleanType()
    • setBooleanType

      public void setBooleanType(DBMSHandlerOracle.BooleanType booleanType)
    • getCollationSupport

      public int getCollationSupport()
      Returns the support for collations
      Returns:
      the column support
      See Also:
    • setCollationSupport

      public void setCollationSupport(int collationSupport)
      Returns the support for collations 0 = none 1 = index column definition 2 = table column definition 3 = table and index column definition
      Parameters:
      collationSupport - the type of collation support
    • getSchemaName

      public String getSchemaName()
    • setSchemaName

      public void setSchemaName(String schemaName)
    • isSupported

      public boolean isSupported(DBMSFeature type)
      Returns whether or not a particular feature is supported by this dbms
      Specified by:
      isSupported in interface DBMSHandler
      Specified by:
      isSupported in class DBMSHandlerBase
      Parameters:
      type - type of requested feature. @see DBMSFeature
      Returns:
      true if the features is supported or false otherwise
    • createCommand

      public DBCommand createCommand(boolean autoPrepareStmt)
      Creates a new Oracle command object.
      Specified by:
      createCommand in interface DBMSHandler
      Overrides:
      createCommand in class DBMSHandlerBase
      Parameters:
      autoPrepareStmt - flag whether to automatically provide literal values as prepared statement params
      Returns:
      the new DBCommandOracle object
    • getSQLPhrase

      public String getSQLPhrase(DBSqlPhrase phrase)
      Gets an sql phrase template for this database system.
      Parameters:
      phrase - the identifier of the phrase
      Returns:
      the phrase template
      See Also:
    • getConvertPhrase

      public String getConvertPhrase(DataType destType, DataType srcType, Object format)
      Description copied from interface: DBMSHandler
      Returns a data type convertion phrase template for this dbms
      The returned template must contain a '?' which will be replaced by a column expression.
      Parameters:
      destType - the target data type
      srcType - the source data type
      format - additional formatting information (optional)
      Returns:
      the data conversion phrase template
      See Also:
    • addStatementParam

      protected void addStatementParam(PreparedStatement pstmt, int paramIndex, Object value) throws SQLException
      Adds a statement parameter to a prepared statement
      Overrides:
      addStatementParam in class DBMSHandlerBase
      Parameters:
      pstmt - the prepared statement
      paramIndex - the parameter index
      value - the parameter value
      Throws:
      SQLException - thrown if a database access error occurs
    • extractErrorMessage

      public String extractErrorMessage(SQLException sqle)
      Extracts native error message of an sqlExeption.
      Specified by:
      extractErrorMessage in interface DBMSHandler
      Overrides:
      extractErrorMessage in class DBMSHandlerBase
      Parameters:
      sqle - the SQLException
      Returns:
      the error message of the database
    • getResultValue

      public Object getResultValue(ResultSet rset, int columnIndex, DataType dataType) throws SQLException
      Gets the value of a sql ResultSet. Gives the dbms the oportunity to change the value i.e. to simulate missing data types with other types.
      Specified by:
      getResultValue in interface DBMSHandler
      Overrides:
      getResultValue in class DBMSHandlerBase
      Parameters:
      rset - the sql Resultset with the current data row
      columnIndex - one based column Index of the desired column
      dataType - the desired data type
      Returns:
      the value of the column
      Throws:
      SQLException - if a database access error occurs
    • getNextSequenceValue

      public Object getNextSequenceValue(DBDatabase db, String seqName, int minValue, Connection conn)
      Description copied from class: DBMSHandlerBase
      Returns the next value of a named sequence The numbers are used for fields of type DBExpr.DT_AUTOINC.
      If a dbms supports this function it must return true for isSupported(DBMSFeature.SEQUENCES).
      Specified by:
      getNextSequenceValue in class DBMSHandlerBase
      Parameters:
      db - the database
      seqName - the name of the sequence
      minValue - the minimum value of the sequence
      conn - a valid database connection
      Returns:
      a new unique sequence value or null if an error occurred
      See Also:
    • getNextSequenceValueExpr

      public DBColumnExpr getNextSequenceValueExpr(DBTableColumn column)
      Description copied from class: DBMSHandlerBase
      Returns an expression for creating a sequence value. This is intended for the use with INSERT INTO statements where many records are affected.
      Specified by:
      getNextSequenceValueExpr in class DBMSHandlerBase
      Parameters:
      column - the column for which to obtain an expression providing the next sequence value
      Returns:
      an expression for the next sequence value
      See Also:
    • getUpdateTimestamp

      public Timestamp getUpdateTimestamp(Connection conn)
      Overridden. Returns a timestamp that is used for record updates created by the database server.
      Specified by:
      getUpdateTimestamp in interface DBMSHandler
      Overrides:
      getUpdateTimestamp in class DBMSHandlerBase
      Parameters:
      conn - the connection that might be used
      Returns:
      the current date and time of the database server.
    • getDDLScript

      public void getDDLScript(DBDDLGenerator.DDLActionType type, DBObject dbo, DBSQLScript script)
      Description copied from interface: DBMSHandler
      Appends the required DLL commands to create, drop or alter an object to the supplied DBDQLScript.
      Parameters:
      type - operation to perform (CREATE, DROP, ALTER)
      dbo - the object for which to perform the operation (DBDatabase, DBTable, DBView, DBColumn, DBRelation)
      script - the script to which to add the DDL command(s)
      See Also:
    • appendEnableRelationStmt

      public void appendEnableRelationStmt(DBRelation r, boolean enable, DBSQLScript script)
      Description copied from class: DBMSHandlerBase
      Appends a statement to enable or disable a foreign key relation.
      The default is to drop or create the relation Override this method to provide different behavior for your database.
      Specified by:
      appendEnableRelationStmt in interface DBMSHandler
      Overrides:
      appendEnableRelationStmt in class DBMSHandlerBase
      Parameters:
      r - the foreign key relation which should be enabled or disabled
      enable - true to enable the relation or false to disable
      script - the script to which to add the DDL command(s)
      See Also:
    • checkDatabase

      public void checkDatabase(DBDatabase db, String owner, Connection conn)
      Checks whether the database definition matches the real database structure.
    • createModelParser

      public OracleDBModelParser createModelParser(String catalog, String schema)
      Description copied from class: DBMSHandlerBase
      Creates a DataModelParser instance of this DBMSHandler
      Specified by:
      createModelParser in interface DBMSHandler
      Overrides:
      createModelParser in class DBMSHandlerBase
      Parameters:
      catalog - the database catalog
      schema - the database schema
      Returns:
      the model parser
    • createModelChecker

      public DBModelChecker createModelChecker(DBDatabase db)
      Creates a DataModelChecker instance of this DBMSHandler
      Specified by:
      createModelChecker in interface DBMSHandler
      Overrides:
      createModelChecker in class DBMSHandlerBase
      Parameters:
      db - the database
      Returns:
    • refreshMView

      public void refreshMView(DBMaterializedView matView, DBContext context)
      Immediately refreshes a Materialized View
      Parameters:
      matView - the materialized view to refresh
      context - the database context