org.apache.openjpa.jdbc.sql
Class OracleDictionary

java.lang.Object
  extended by org.apache.openjpa.jdbc.sql.DBDictionary
      extended by org.apache.openjpa.jdbc.sql.OracleDictionary
All Implemented Interfaces:
JoinSyntaxes, Configurable, IdentifierConfiguration, ConnectionDecorator, LoggingConnectionDecorator.SQLWarningHandler

public class OracleDictionary
extends DBDictionary

Dictionary for Oracle.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.openjpa.jdbc.sql.DBDictionary
DBDictionary.SerializedData
 
Field Summary
 String autoAssignSequenceName
          The global sequence name to use for autoassign simulation.
 boolean openjpa3GeneratedKeyNames
          Flag to use OpenJPA 0.3 style naming for auto assign sequence name and trigger name for backwards compatibility.
static String SELECT_HINT
           
 boolean supportsSetClob
          Deprecated. 
 boolean useSetFormOfUseForUnicode
          If true, then OpenJPA will attempt to use the special OraclePreparedStatement.setFormOfUse method to configure statements that it detects are operating on unicode fields.
 boolean useTriggersForAutoAssign
          If true, then simulate auto-assigned values in Oracle by using a trigger that inserts a sequence value into the primary key value when a row is inserted.
static String VENDOR_ORACLE
           
 String xmlTypeMarker
          Type constructor for XML column, used in INSERT and UPDATE statements.
 
Fields inherited from class org.apache.openjpa.jdbc.sql.DBDictionary
_proxyManager, allowsAliasInBulkClause, arrayTypeName, autoAssignClause, autoAssignTypeName, batchLimit, bigintTypeName, binaryTypeName, bitLengthFunction, bitTypeName, blobBufferSize, blobTypeName, booleanTypeName, castFunction, catalogSeparator, CENTI, characterColumnSize, charTypeName, clobBufferSize, clobTypeName, closePoolSQL, concatenateDelimiter, concatenateFunction, conf, connected, CONS_NAME_AFTER, CONS_NAME_BEFORE, CONS_NAME_MID, constraintNameMode, createPrimaryKeys, crossJoinClause, currentDateFunction, currentTimeFunction, currentTimestampFunction, datePrecision, dateTypeName, DECI, decimalTypeName, defaultSchemaName, delimitedCase, distinctCountColumnSeparator, distinctTypeName, doubleTypeName, driverVendor, dropTableSQL, fixedSizeTypeNames, fixedSizeTypeNameSet, floatTypeName, forUpdateClause, getStringVal, inClauseLimit, initializationSQL, innerJoinClause, integerTypeName, invalidColumnWordSet, isJDBC3, isJDBC4, javaObjectTypeName, joinSyntax, lastGeneratedKeyQuery, leadingDelimiter, log, longVarbinaryTypeName, longVarcharTypeName, maxAutoAssignNameLength, maxColumnNameLength, maxConstraintNameLength, maxEmbeddedBlobSize, maxEmbeddedClobSize, maxIndexesPerTable, maxIndexNameLength, maxTableNameLength, MICRO, MILLI, NAME_ANY, NAME_SEQUENCE, NAME_TABLE, nameConcatenator, NANO, nativeSequenceType, nextSequenceQuery, NO_BATCH, nullTypeName, numericTypeName, otherTypeName, outerJoinClause, platform, RANGE_POST_DISTINCT, RANGE_POST_LOCK, RANGE_POST_SELECT, RANGE_PRE_DISTINCT, rangePosition, realTypeName, refTypeName, reportsSuccessNoInfoOnBatchUpdates, requiresAliasForSubselect, requiresAutoCommitForMetaData, requiresCastForComparisons, requiresCastForMathFunctions, requiresConditionForCrossJoin, requiresSearchStringEscapeForLike, requiresTargetForDelete, reservedWords, reservedWordSet, SCHEMA_CASE_LOWER, SCHEMA_CASE_PRESERVE, SCHEMA_CASE_UPPER, schemaCase, searchStringEscape, SEC, selectWords, selectWordSet, sequenceNameSQL, sequenceSchemaSQL, sequenceSQL, setStringRightTruncationOn, simulateLocking, smallintTypeName, sqlStateCodes, storageLimitationsFatal, storeCharsAsNumbers, storeLargeNumbersAsStrings, stringLengthFunction, structTypeName, substringFunctionName, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsAutoAssign, supportsCascadeDeleteAction, supportsCascadeUpdateAction, supportsCaseConversionForLob, supportsComments, supportsCorrelatedSubselect, supportsDefaultDeleteAction, supportsDefaultUpdateAction, supportsDeferredConstraints, supportsDelimitedIdentifiers, supportsForeignKeys, supportsForeignKeysComposite, supportsGeneralCaseExpression, supportsGetGeneratedKeys, supportsHaving, supportsLockingWithDistinctClause, supportsLockingWithInnerJoin, supportsLockingWithMultipleTables, supportsLockingWithOrderClause, supportsLockingWithOuterJoin, supportsLockingWithSelectRange, supportsModOperator, supportsMultipleNontransactionalResultSets, supportsNullDeleteAction, supportsNullTableForGetColumns, supportsNullTableForGetImportedKeys, supportsNullTableForGetIndexInfo, supportsNullTableForGetPrimaryKeys, supportsNullUniqueColumn, supportsNullUpdateAction, supportsParameterInSelect, supportsQueryTimeout, supportsRestrictDeleteAction, supportsRestrictUpdateAction, supportsSchemaForGetColumns, supportsSchemaForGetTables, supportsSelectEndIndex, supportsSelectForUpdate, supportsSelectFromFinalTable, supportsSelectStartIndex, supportsSimpleCaseExpression, supportsSubselect, supportsUniqueConstraints, supportsXMLColumn, systemSchemas, systemSchemaSet, systemTables, systemTableSet, tableForUpdateClause, tableLengthIncludesSchema, tableTypes, timestampTypeName, timeTypeName, tinyintTypeName, toLowerCaseFunction, toUpperCaseFunction, trailingDelimiter, trimBothFunction, trimLeadingFunction, trimSchemaName, trimTrailingFunction, typeModifierSet, UNLIMITED, useGetBestRowIdentifierForPrimaryKeys, useGetBytesForBlobs, useGetObjectForBlobs, useGetStringForClobs, useNativeSequenceCache, useSchemaName, useSetBytesForBlobs, useSetStringForClobs, useWildCardForCount, validationSQL, varbinaryTypeName, varcharTypeName, VENDOR_DATADIRECT, VENDOR_OTHER, xmlTypeEncoding, xmlTypeName
 
Fields inherited from interface org.apache.openjpa.jdbc.sql.JoinSyntaxes
SYNTAX_DATABASE, SYNTAX_SQL92, SYNTAX_TRADITIONAL
 
Constructor Summary
OracleDictionary()
           
 
Method Summary
 void appendXmlComparison(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs, boolean lhsxml, boolean rhsxml)
          If this dictionary supports XML type, use this method to append xml predicate.
 boolean canOuterJoin(int syntax, ForeignKey fk)
          Returns if the given foreign key can be eagerly loaded using other joins.
 void connectedConfiguration(Connection conn)
          This method is called when the dictionary first sees any connection.
 void endConfiguration()
          Invoked upon completion of bean property configuration for this object.
 void ensureDriverVendor()
          Ensure that the driver vendor has been set, and if not, set it now.
 int getBatchUpdateCount(PreparedStatement ps)
          Return batched statements update success count
 String getClobString(ResultSet rs, int column)
          Convert the specified column of the SQL ResultSet to the proper java type.
 Column[] getColumns(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, DBIdentifier columnName, Connection conn)
          Reflect on the schema to find columns matching the given table and column patterns.
 Column[] getColumns(DatabaseMetaData meta, String catalog, String schemaName, String tableName, String columnName, Connection conn)
          Reflect on the schema to find columns matching the given table and column patterns.
 String[] getCreateTableSQL(Table table)
          Return a series of SQL statements to create the given table, complete with columns.
 Object getGeneratedKey(Column col, Connection conn)
          Return the last generated value for the given column.
protected  String getGeneratedKeyTriggerName(Column col)
          Trigger name for simulating auto-assign values on the given column.
 ForeignKey[] getImportedKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn, boolean partialKeys)
          Reflect on the schema to return full foreign keys imported by the given table pattern.
 ForeignKey[] getImportedKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn, boolean partialKeys)
          Reflect on the schema to return full foreign keys imported by the given table pattern.
 Index[] getIndexInfo(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, boolean unique, boolean approx, Connection conn)
          Reflect on the schema to find indexes matching the given table pattern.
 Index[] getIndexInfo(DatabaseMetaData meta, String catalog, String schemaName, String tableName, boolean unique, boolean approx, Connection conn)
          Reflect on the schema to find indexes matching the given table pattern.
 String getIsNotNullSQL(String colAlias, int colType)
           
 String getIsNullSQL(String colAlias, int colType)
           
 int getJDBCType(int metaTypeCode, boolean lob, int precis, int scale, boolean xml)
          Return the preferred Types constant for the given JavaTypes or JavaSQLTypes constant.
 String getMarkerForInsertUpdate(Column col, Object val)
          Oracle requires special handling of XML column.
 Object getObject(ResultSet rs, int column, Map map)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  String getOpenJPA3GeneratedKeySequenceName(Column col)
          Returns a OpenJPA 3-compatible name for an auto-assign sequence.
protected  String getOpenJPA3GeneratedKeyTriggerName(Column col)
          Returns a OpenJPA 3-compatible name for an auto-assign trigger.
 PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn)
          Reflect on the schema to find primary keys for the given table pattern.
 PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn)
          Reflect on the schema to find primary keys for the given table pattern.
 String getSelectOperation(JDBCFetchConfiguration fetch)
          Check to see if we have set the SELECT_HINT in the fetch configuraiton, and if so, append the Orache hint after the "SELECT" part of the query.
protected  SQLBuffer getSelects(Select sel, boolean distinctIdentifiers, boolean forUpdate)
          Return the portion of the select statement between the SELECT keyword and the FROM keyword.
protected  String getSequencesSQL(DBIdentifier schemaName, DBIdentifier sequenceName)
           
protected  String getSequencesSQL(String schemaName, String sequenceName)
          Return the SQL needed to select the list of sequences.
 Timestamp getTimestamp(ResultSet rs, int column, Calendar cal)
          Convert the specified column of the SQL ResultSet to the proper java type.
protected  void guessJDBCVersion(Connection conn)
          Oracle drivers, at least in versions 10.2.0.4 and 11.2.0.1, incorrectly return a driver major version from DatabaseMetaData.getJDBCMajorVersion().
 void indexOf(SQLBuffer buf, FilterValue str, FilterValue find, FilterValue start)
          Invoke this database's indexOf function.
 void insertBlobForStreamingLoad(Row row, Column col, JDBCStore store, Object ob, Select sel)
           
 void insertClobForStreamingLoad(Row row, Column col, Object ob)
           
 boolean isFatalException(int subtype, SQLException ex)
          Determine if the given SQL Exception is fatal or recoverable (such as a timeout).
 boolean isSystemSequence(DBIdentifier name, DBIdentifier schema, boolean targetSchema)
          This method is used to filter system sequences from database metadata.
 boolean isSystemSequence(String name, String schema, boolean targetSchema)
          This method is used to filter system sequences from database metadata.
 void putBytes(Blob blob, byte[] data)
          Invoke Oracle's putBytes method on the given BLOB object.
 void putChars(Clob clob, char[] data)
          Invoke Oracle's putChars method on the given CLOB object.
 void putString(Clob clob, String data)
          Invoke Oracle's putString method on the given CLOB object.
 void setBinaryStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col)
          Set the given value as a parameter to the statement.
 void setClobString(PreparedStatement stmnt, int idx, String val, Column col)
          Set the given value as a parameter to the statement.
 void setNull(PreparedStatement stmnt, int idx, int colType, Column col)
          Set null as a parameter to the statement.
 void setString(PreparedStatement stmnt, int idx, String val, Column col)
          Set the given value as a parameter to the statement.
 boolean supportsLocking(Select sel)
          Returns true if a "FOR UPDATE" clause can be used for the specified Select object.
 SQLBuffer toNativeJoin(Join join)
          Use the given join instance to create SQL joining its tables in the database's native syntax.
protected  SQLBuffer toSelect(SQLBuffer select, JDBCFetchConfiguration fetch, SQLBuffer tables, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, boolean subselect, Select sel)
          Combine the given components into a SELECT statement.
protected  SQLBuffer toSelect(SQLBuffer select, JDBCFetchConfiguration fetch, SQLBuffer tables, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, Select sel)
          Combine the given components into a SELECT statement.
 
Methods inherited from class org.apache.openjpa.jdbc.sql.DBDictionary
addCastAsType, addErrorCode, appendCast, appendLength, appendNumericCast, appendSelect, appendSelectRange, appendSize, appendUpdates, assertSupport, calculateValue, checkNameLength, checkNameLength, checkNameLength, closeDataSource, combineForeignKey, comment, comparison, configureNamingRules, convertSchemaCase, convertSchemaCase, copy, copy, createIndexIfNecessary, createIndexIfNecessary, decorate, deleteStream, delimitAll, executeQuery, fromDBName, getAddColumnSQL, getAddForeignKeySQL, getAddPrimaryKeySQL, getAlterSequenceSQL, getArray, getAsciiStream, getBatchFetchSize, getBatchLimit, getBigDecimal, getBigInteger, getBinaryStream, getBlob, getBlobObject, getBoolean, getByte, getBytes, getCalendar, getCastFunction, getCastFunction, getCatalogNameForMetadata, getCatalogNameForMetadata, getChar, getCharacterStream, getClob, getColumnDBName, getColumnIdentifier, getColumnNameForMetadata, getColumnNameForMetadata, getConversionKey, getCreateIndexSQL, getCreateSequenceSQL, getCreateTableSQL, getDate, getDate, getDeclareColumnSQL, getDefaultIdentifierRule, getDefaultSchemaName, getDeleteTableContentsSQL, getDeleteTargets, getDelimitedCase, getDelimitIdentifiers, getDouble, getDropColumnSQL, getDropForeignKeySQL, getDropIndexSQL, getDropPrimaryKeySQL, getDropSequenceSQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getForUpdateClause, getFrom, getFromSelect, getFullIdentifier, getFullName, getFullName, getFullName, getGeneratedKeySequenceName, getGenKeySeqName, getIdentifierConcatenator, getIdentifierDelimiter, getIdentifierRule, getIdentifierRules, getIdentityColumnName, getImportedKeys, getImportedKeys, getInt, getInvalidColumnWordSet, getJDBCType, getJDBCType, getKey, getLeadingDelimiter, getLOBStream, getLocale, getLog, getLong, getNamingUtil, getNumber, getPlaceholderValueString, getPreferredType, getPrimaryKeyConstraintSQL, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromGetPrimaryKeys, getPrimaryKeysFromGetPrimaryKeys, getRef, getSchemaCase, getSchemaNameForMetadata, getSchemaNameForMetadata, getSelectTableAliases, getSequence, getSequences, getSequences, getShort, getString, getSupportsDelimitedIdentifiers, getSupportsXMLColumn, getTableNameForMetadata, getTableNameForMetadata, getTables, getTables, getTime, getTrailingDelimiter, getTrimSchemaName, getTypeName, getTypeName, getUniqueConstraintSQL, getValidColumnName, getValidColumnName, getValidColumnName, getValidColumnName, getValidForeignKeyName, getValidForeignKeyName, getValidIndexName, getValidIndexName, getValidPrimaryKeyName, getValidSequenceName, getValidSequenceName, getValidTableName, getValidTableName, getValidUniqueName, getValidUniqueName, getVersionColumn, getVersionColumn, getWhere, getXMLTypeEncoding, handleWarning, insertSize, isSelect, isSystemIndex, isSystemIndex, isSystemSequence, isSystemTable, isSystemTable, makeNameValid, makeNameValid, makeNameValid, makeNameValid, matchErrorState, mathFunction, narrow, needsToCreateIndex, needsToCreateIndex, newColumn, newForeignKey, newIndex, newPrimaryKey, newSequence, newStoreException, newTable, prepareStatement, refSchemaComponents, serialize, setArray, setAsciiStream, setBatchLimit, setBigDecimal, setBigInteger, setBlob, setBlobObject, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setConfiguration, setDate, setDate, setDefaultSchemaName, setDelimitedCase, setDelimitIdentifiers, setDouble, setFloat, setInt, setJoinSyntax, setLeadingDelimiter, setLocale, setLong, setNumber, setObject, setQueryTimeout, setRef, setShort, setStatementQueryTimeout, setSupportsDelimitedIdentifiers, setSupportsXMLColumn, setTime, setTimeouts, setTimeouts, setTimestamp, setTrailingDelimiter, setTrimSchemaName, setTyped, setUnknown, setXMLTypeEncoding, shorten, startConfiguration, storageWarning, substring, supportsDeferredForeignKeyConstraints, supportsDeferredUniqueConstraints, supportsDeleteAction, supportsIsolationForUpdate, supportsRandomAccessResultSet, supportsUpdateAction, toBulkOperation, toDBName, toDBName, toDelete, toLong, toOperation, toOperation, toSelect, toSelect, toSelect, toSelectCount, toSQL92Join, toTraditionalJoin, toUpdate, updateBlob, updateClob, validateBatchProcess, validateDBSpecificBatchProcess
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SELECT_HINT

public static final String SELECT_HINT
See Also:
Constant Field Values

VENDOR_ORACLE

public static final String VENDOR_ORACLE
See Also:
Constant Field Values

useTriggersForAutoAssign

public boolean useTriggersForAutoAssign
If true, then simulate auto-assigned values in Oracle by using a trigger that inserts a sequence value into the primary key value when a row is inserted.


autoAssignSequenceName

public String autoAssignSequenceName
The global sequence name to use for autoassign simulation.


openjpa3GeneratedKeyNames

public boolean openjpa3GeneratedKeyNames
Flag to use OpenJPA 0.3 style naming for auto assign sequence name and trigger name for backwards compatibility.


useSetFormOfUseForUnicode

public boolean useSetFormOfUseForUnicode
If true, then OpenJPA will attempt to use the special OraclePreparedStatement.setFormOfUse method to configure statements that it detects are operating on unicode fields.


supportsSetClob

@Deprecated
public boolean supportsSetClob
Deprecated. 
This variable was used prior to 2.1.x to indicate that OpenJPA should attempt to use a Reader-based JDBC 4.0 method to set Clob or XML data. It allowed XMLType and Clob values larger than 4000 bytes to be used. For 2.1.x+, code was added to allow said functionality by default (see OPENJPA-1691). For forward compatibility, this variable should not be removed.


xmlTypeMarker

public String xmlTypeMarker
Type constructor for XML column, used in INSERT and UPDATE statements.

Constructor Detail

OracleDictionary

public OracleDictionary()
Method Detail

endConfiguration

public void endConfiguration()
Description copied from interface: Configurable
Invoked upon completion of bean property configuration for this object.

Specified by:
endConfiguration in interface Configurable
Overrides:
endConfiguration in class DBDictionary

connectedConfiguration

public void connectedConfiguration(Connection conn)
                            throws SQLException
Description copied from class: DBDictionary
This method is called when the dictionary first sees any connection. It is used to initialize dictionary metadata if needed. If you override this method, be sure to call super.connectedConfiguration.

Overrides:
connectedConfiguration in class DBDictionary
Throws:
SQLException

ensureDriverVendor

public void ensureDriverVendor()
Ensure that the driver vendor has been set, and if not, set it now.


supportsLocking

public boolean supportsLocking(Select sel)
Description copied from class: DBDictionary
Returns true if a "FOR UPDATE" clause can be used for the specified Select object.

Overrides:
supportsLocking in class DBDictionary

getSelects

protected SQLBuffer getSelects(Select sel,
                               boolean distinctIdentifiers,
                               boolean forUpdate)
Description copied from class: DBDictionary
Return the portion of the select statement between the SELECT keyword and the FROM keyword.

Overrides:
getSelects in class DBDictionary

canOuterJoin

public boolean canOuterJoin(int syntax,
                            ForeignKey fk)
Description copied from class: DBDictionary
Returns if the given foreign key can be eagerly loaded using other joins.

Overrides:
canOuterJoin in class DBDictionary

toNativeJoin

public SQLBuffer toNativeJoin(Join join)
Description copied from class: DBDictionary
Use the given join instance to create SQL joining its tables in the database's native syntax. Throws an exception by default.

Overrides:
toNativeJoin in class DBDictionary

toSelect

protected SQLBuffer toSelect(SQLBuffer select,
                             JDBCFetchConfiguration fetch,
                             SQLBuffer tables,
                             SQLBuffer where,
                             SQLBuffer group,
                             SQLBuffer having,
                             SQLBuffer order,
                             boolean distinct,
                             boolean forUpdate,
                             long start,
                             long end,
                             boolean subselect,
                             Select sel)
Description copied from class: DBDictionary
Combine the given components into a SELECT statement.

Overrides:
toSelect in class DBDictionary

toSelect

protected SQLBuffer toSelect(SQLBuffer select,
                             JDBCFetchConfiguration fetch,
                             SQLBuffer tables,
                             SQLBuffer where,
                             SQLBuffer group,
                             SQLBuffer having,
                             SQLBuffer order,
                             boolean distinct,
                             boolean forUpdate,
                             long start,
                             long end,
                             Select sel)
Description copied from class: DBDictionary
Combine the given components into a SELECT statement.

Overrides:
toSelect in class DBDictionary

getSelectOperation

public String getSelectOperation(JDBCFetchConfiguration fetch)
Check to see if we have set the SELECT_HINT in the fetch configuraiton, and if so, append the Orache hint after the "SELECT" part of the query.

Overrides:
getSelectOperation in class DBDictionary

setString

public void setString(PreparedStatement stmnt,
                      int idx,
                      String val,
                      Column col)
               throws SQLException
Description copied from class: DBDictionary
Set the given value as a parameter to the statement.

Overrides:
setString in class DBDictionary
Throws:
SQLException

setBinaryStream

public void setBinaryStream(PreparedStatement stmnt,
                            int idx,
                            InputStream val,
                            int length,
                            Column col)
                     throws SQLException
Description copied from class: DBDictionary
Set the given value as a parameter to the statement.

Overrides:
setBinaryStream in class DBDictionary
Throws:
SQLException

setClobString

public void setClobString(PreparedStatement stmnt,
                          int idx,
                          String val,
                          Column col)
                   throws SQLException
Description copied from class: DBDictionary
Set the given value as a parameter to the statement.

Overrides:
setClobString in class DBDictionary
Throws:
SQLException

setNull

public void setNull(PreparedStatement stmnt,
                    int idx,
                    int colType,
                    Column col)
             throws SQLException
Description copied from class: DBDictionary
Set null as a parameter to the statement. The column type will come from Types.

Overrides:
setNull in class DBDictionary
Throws:
SQLException

getClobString

public String getClobString(ResultSet rs,
                            int column)
                     throws SQLException
Description copied from class: DBDictionary
Convert the specified column of the SQL ResultSet to the proper java type.

Overrides:
getClobString in class DBDictionary
Throws:
SQLException

getTimestamp

public Timestamp getTimestamp(ResultSet rs,
                              int column,
                              Calendar cal)
                       throws SQLException
Description copied from class: DBDictionary
Convert the specified column of the SQL ResultSet to the proper java type.

Overrides:
getTimestamp in class DBDictionary
Throws:
SQLException

getObject

public Object getObject(ResultSet rs,
                        int column,
                        Map map)
                 throws SQLException
Description copied from class: DBDictionary
Convert the specified column of the SQL ResultSet to the proper java type.

Overrides:
getObject in class DBDictionary
Throws:
SQLException

getColumns

public Column[] getColumns(DatabaseMetaData meta,
                           String catalog,
                           String schemaName,
                           String tableName,
                           String columnName,
                           Connection conn)
                    throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find columns matching the given table and column patterns.

Overrides:
getColumns in class DBDictionary
Throws:
SQLException

getColumns

public Column[] getColumns(DatabaseMetaData meta,
                           DBIdentifier catalog,
                           DBIdentifier schemaName,
                           DBIdentifier tableName,
                           DBIdentifier columnName,
                           Connection conn)
                    throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find columns matching the given table and column patterns.

Overrides:
getColumns in class DBDictionary
Throws:
SQLException

getPrimaryKeys

public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta,
                                   String catalog,
                                   String schemaName,
                                   String tableName,
                                   Connection conn)
                            throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find primary keys for the given table pattern.

Overrides:
getPrimaryKeys in class DBDictionary
Throws:
SQLException

getPrimaryKeys

public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta,
                                   DBIdentifier catalog,
                                   DBIdentifier schemaName,
                                   DBIdentifier tableName,
                                   Connection conn)
                            throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find primary keys for the given table pattern.

Overrides:
getPrimaryKeys in class DBDictionary
Throws:
SQLException

getIndexInfo

public Index[] getIndexInfo(DatabaseMetaData meta,
                            String catalog,
                            String schemaName,
                            String tableName,
                            boolean unique,
                            boolean approx,
                            Connection conn)
                     throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find indexes matching the given table pattern.

Overrides:
getIndexInfo in class DBDictionary
Throws:
SQLException

getIndexInfo

public Index[] getIndexInfo(DatabaseMetaData meta,
                            DBIdentifier catalog,
                            DBIdentifier schemaName,
                            DBIdentifier tableName,
                            boolean unique,
                            boolean approx,
                            Connection conn)
                     throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to find indexes matching the given table pattern.

Overrides:
getIndexInfo in class DBDictionary
Throws:
SQLException

getImportedKeys

public ForeignKey[] getImportedKeys(DatabaseMetaData meta,
                                    String catalog,
                                    String schemaName,
                                    String tableName,
                                    Connection conn,
                                    boolean partialKeys)
                             throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to return full foreign keys imported by the given table pattern.

Overrides:
getImportedKeys in class DBDictionary
Throws:
SQLException

getImportedKeys

public ForeignKey[] getImportedKeys(DatabaseMetaData meta,
                                    DBIdentifier catalog,
                                    DBIdentifier schemaName,
                                    DBIdentifier tableName,
                                    Connection conn,
                                    boolean partialKeys)
                             throws SQLException
Description copied from class: DBDictionary
Reflect on the schema to return full foreign keys imported by the given table pattern.

Overrides:
getImportedKeys in class DBDictionary
Throws:
SQLException

getCreateTableSQL

public String[] getCreateTableSQL(Table table)
Description copied from class: DBDictionary
Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately.

Overrides:
getCreateTableSQL in class DBDictionary

getJDBCType

public int getJDBCType(int metaTypeCode,
                       boolean lob,
                       int precis,
                       int scale,
                       boolean xml)
Return the preferred Types constant for the given JavaTypes or JavaSQLTypes constant.

Overrides:
getJDBCType in class DBDictionary

getSequencesSQL

protected String getSequencesSQL(String schemaName,
                                 String sequenceName)
Description copied from class: DBDictionary
Return the SQL needed to select the list of sequences.

Overrides:
getSequencesSQL in class DBDictionary

getSequencesSQL

protected String getSequencesSQL(DBIdentifier schemaName,
                                 DBIdentifier sequenceName)
Overrides:
getSequencesSQL in class DBDictionary

isSystemSequence

public boolean isSystemSequence(String name,
                                String schema,
                                boolean targetSchema)
Description copied from class: DBDictionary
This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.

Overrides:
isSystemSequence in class DBDictionary
Parameters:
name - the table name
schema - the table schema; may be null
targetSchema - if true, then the given schema was listed by the user as one of his schemas

isSystemSequence

public boolean isSystemSequence(DBIdentifier name,
                                DBIdentifier schema,
                                boolean targetSchema)
Description copied from class: DBDictionary
This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.

Overrides:
isSystemSequence in class DBDictionary
Parameters:
name - the table name
schema - the table schema; may be null
targetSchema - if true, then the given schema was listed by the user as one of his schemas

getGeneratedKey

public Object getGeneratedKey(Column col,
                              Connection conn)
                       throws SQLException
Description copied from class: DBDictionary
Return the last generated value for the given column. Throws an exception by default if DBDictionary.lastGeneratedKeyQuery is null.

Overrides:
getGeneratedKey in class DBDictionary
Throws:
SQLException

getGeneratedKeyTriggerName

protected String getGeneratedKeyTriggerName(Column col)
Trigger name for simulating auto-assign values on the given column.


getOpenJPA3GeneratedKeySequenceName

protected String getOpenJPA3GeneratedKeySequenceName(Column col)
Returns a OpenJPA 3-compatible name for an auto-assign sequence.


getOpenJPA3GeneratedKeyTriggerName

protected String getOpenJPA3GeneratedKeyTriggerName(Column col)
Returns a OpenJPA 3-compatible name for an auto-assign trigger.


putBytes

public void putBytes(Blob blob,
                     byte[] data)
              throws SQLException
Invoke Oracle's putBytes method on the given BLOB object. Uses reflection in case the blob is wrapped in another vendor-specific class; for example Weblogic wraps oracle thin driver lobs in its own interfaces with the same methods.

Overrides:
putBytes in class DBDictionary
Throws:
SQLException

putString

public void putString(Clob clob,
                      String data)
               throws SQLException
Invoke Oracle's putString method on the given CLOB object. Uses reflection in case the clob is wrapped in another vendor-specific class; for example Weblogic wraps oracle thin driver lobs in its own interfaces with the same methods.

Overrides:
putString in class DBDictionary
Throws:
SQLException

putChars

public void putChars(Clob clob,
                     char[] data)
              throws SQLException
Invoke Oracle's putChars method on the given CLOB object. Uses reflection in case the clob is wrapped in another vendor-specific class; for example Weblogic wraps oracle thin driver lobs in its own interfaces with the same methods.

Overrides:
putChars in class DBDictionary
Throws:
SQLException

appendXmlComparison

public void appendXmlComparison(SQLBuffer buf,
                                String op,
                                FilterValue lhs,
                                FilterValue rhs,
                                boolean lhsxml,
                                boolean rhsxml)
If this dictionary supports XML type, use this method to append xml predicate.

Overrides:
appendXmlComparison in class DBDictionary
Parameters:
buf - the SQL buffer to write the comparison
op - the comparison operation to perform
lhs - the left hand side of the comparison
rhs - the right hand side of the comparison

insertClobForStreamingLoad

public void insertClobForStreamingLoad(Row row,
                                       Column col,
                                       Object ob)
                                throws SQLException
Overrides:
insertClobForStreamingLoad in class DBDictionary
Throws:
SQLException

getBatchUpdateCount

public int getBatchUpdateCount(PreparedStatement ps)
                        throws SQLException
Description copied from class: DBDictionary
Return batched statements update success count

Overrides:
getBatchUpdateCount in class DBDictionary
Parameters:
ps - A PreparedStatement
Returns:
return update count
Throws:
SQLException

isFatalException

public boolean isFatalException(int subtype,
                                SQLException ex)
Description copied from class: DBDictionary
Determine if the given SQL Exception is fatal or recoverable (such as a timeout). This implementation always returns true (i.e. all exceptions are fatal). The current dictionary implementation can overwrite this method to mark certain exception conditions as recoverable error.

Overrides:
isFatalException in class DBDictionary
Parameters:
subtype - A constant indicating the category of error as defined in StoreException.
ex - original SQL Exception as raised by the database driver.
Returns:
false if the error is fatal.

insertBlobForStreamingLoad

public void insertBlobForStreamingLoad(Row row,
                                       Column col,
                                       JDBCStore store,
                                       Object ob,
                                       Select sel)
                                throws SQLException
Overrides:
insertBlobForStreamingLoad in class DBDictionary
Throws:
SQLException

getMarkerForInsertUpdate

public String getMarkerForInsertUpdate(Column col,
                                       Object val)
Oracle requires special handling of XML column. Unless the value length is less or equal to 4000 bytes, the parameter marker must be decorated with type constructor.

Overrides:
getMarkerForInsertUpdate in class DBDictionary
Parameters:
col - column definition
val - value to be inserted/updated
Returns:
parameter marker

guessJDBCVersion

protected void guessJDBCVersion(Connection conn)
Oracle drivers, at least in versions 10.2.0.4 and 11.2.0.1, incorrectly return a driver major version from DatabaseMetaData.getJDBCMajorVersion().


getIsNullSQL

public String getIsNullSQL(String colAlias,
                           int colType)
Overrides:
getIsNullSQL in class DBDictionary

getIsNotNullSQL

public String getIsNotNullSQL(String colAlias,
                              int colType)
Overrides:
getIsNotNullSQL in class DBDictionary

indexOf

public void indexOf(SQLBuffer buf,
                    FilterValue str,
                    FilterValue find,
                    FilterValue start)
Description copied from class: DBDictionary
Invoke this database's indexOf function.

Overrides:
indexOf in class DBDictionary
Parameters:
buf - the SQL buffer to write the indexOf invocation to
str - a query value representing the target string
find - a query value representing the search string
start - a query value representing the start index, or null to start at the beginning


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.