- All Implemented Interfaces:
Backend
Backend for Oracle versions 12 or newer.
- Author:
- harald
-
Field Summary
Fields inherited from class org.tentackle.sql.backends.Oracle8
SQL_NESTED_SELECT_1, SQL_NESTED_SELECT_2, SQL_NESTED_SELECT_LIMIT, SQL_NESTED_SELECT_OFFSET, SQL_NESTED_SELECT_ROWNUMFields inherited from class org.tentackle.sql.backends.AbstractSql2003Backend
RESERVED_WORDS_SQL2003, SQL_WINDOW_1, SQL_WINDOW_2, SQL_WINDOW_LIMIT, SQL_WINDOW_OFFSETFields inherited from class org.tentackle.sql.backends.AbstractSql92Backend
RESERVED_WORDS_SQL92, SQL_COALESCE, SQL_FOR_UPDATEFields inherited from class org.tentackle.sql.backends.AbstractBackend
TYPE_BIGINT, TYPE_BIT, TYPE_BLOB, TYPE_BOOL, TYPE_BOOLEAN, TYPE_BYTE, TYPE_BYTEA, TYPE_CHAR_1, TYPE_CLOB, TYPE_DATE, TYPE_DATETIME, TYPE_DATETIME_YEAR_TO_SECOND, TYPE_DECIMAL, TYPE_DECIMAL_19, TYPE_DOUBLE, TYPE_DOUBLE_PRECISION, TYPE_FLOAT, TYPE_FLOAT4, TYPE_FLOAT8, TYPE_INT, TYPE_INT2, TYPE_INT4, TYPE_INT8, TYPE_INTEGER, TYPE_NCHAR_1, TYPE_NUMBER, TYPE_NUMBER_1, TYPE_NUMBER_10, TYPE_NUMBER_19, TYPE_NUMBER_5, TYPE_NVARCHAR, TYPE_NVARCHAR_MAX, TYPE_REAL, TYPE_SMALLFLOAT, TYPE_SMALLINT, TYPE_TEXT, TYPE_TIME, TYPE_TIMESTAMP, TYPE_TINYINT, TYPE_UUID, TYPE_VARBINARY_MAX, TYPE_VARCHARFields inherited from interface org.tentackle.sql.Backend
SQL_ALLSTAR, SQL_ALTER_COLUMN, SQL_ALTER_INDEX, SQL_ALTER_TABLE, SQL_AND, SQL_ANDNOT, SQL_ARRAY_ALL, SQL_ARRAY_ALL_PAR, SQL_ARRAY_ANY, SQL_ARRAY_ANY_PAR, SQL_ARRAY_IN, SQL_ARRAY_IN_PAR, SQL_ARRAY_NOT_IN, SQL_ARRAY_NOT_IN_PAR, SQL_ARRAY_PAR, SQL_COMMA, SQL_COMMA_PAR, SQL_DELETE, SQL_DOT_STAR, SQL_EQUAL, SQL_EQUAL_PAR, SQL_EQUAL_PAR_COMMA, SQL_EQUAL_ZERO, SQL_EXISTS, SQL_FROM, SQL_GREATER, SQL_GREATER_PAR, SQL_GREATEROREQUAL, SQL_GREATEROREQUAL_PAR, SQL_GROUPBY, SQL_IF_EXISTS, SQL_INSERT_INTO, SQL_INSERT_VALUES, SQL_ISNOTNULL, SQL_ISNULL, SQL_LEFT_PARENTHESIS, SQL_LESS, SQL_LESS_PAR, SQL_LESSOREQUAL, SQL_LESSOREQUAL_PAR, SQL_LIKE, SQL_LIKE_PAR, SQL_MAX, SQL_MIN, SQL_NOT, SQL_NOTEQUAL, SQL_NOTEQUAL_PAR, SQL_NOTEQUAL_ZERO, SQL_NOTLIKE, SQL_NOTLIKE_PAR, SQL_OR, SQL_ORDERBY, SQL_ORNOT, SQL_PAR, SQL_PAR_COMMA, SQL_PLUS_ONE, SQL_RIGHT_PARENTHESIS, SQL_SELECT, SQL_SELECT_ALL_FROM, SQL_SET, SQL_SORTASC, SQL_SORTDESC, SQL_UPDATE, SQL_WHERE, SQL_WHEREALL, SQL_WHEREAND, SQL_WHERENOTHING, SQL_WHEREOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbuildSelectSql(StringBuilder sqlBuilder, boolean writeLock, int limit, int offset) Creates a select statement string from an inner sql string.protected StringextractWhereClause(String sql, int whereOffset) Extracts the where clause from a given sql.getName()Gets the name of the backend.booleanReturns whether this backend is deprecated and superseded by a newer implementation.
Deprecated backends are omitted fromBackendFactory.getAllBackends().voidvalidateVersion(int databaseMajorVersion, int databaseMinorVersion) Verifies that the major and minor version of the connection's metadata is compatible with this backend.
If the latest backend is not compatible, the URL may be post-fixed with a backend type for an older version, for example:Methods inherited from class org.tentackle.sql.backends.Oracle8
assertValidName, columnTypeNullDefaultToString, createColumnMetaData, createConnection, dateString, getBackendId, getDriverClassName, getEmptyString, getMaxSize, isExtraCommitRequired, isMatchingUrl, isReservedSchemaName, isReservedTableName, isSchemaSupported, isTemporaryName, isTransientTransactionException, jdbcTypeToSqlType, sqlAddColumn, sqlAlterColumnDefault, sqlAlterColumnNullConstraint, sqlAlterColumnType, sqlCreateColumnComment, sqlCreateTableComment, sqlNextFromSequence, sqlRenameTable, sqlTypeToString, timestampString, timeString, valueToLiteralMethods inherited from class org.tentackle.sql.backends.AbstractSql2003Backend
getReservedWords, isSequenceSupported, setLeadingSelectParameters, setTrailingSelectParameters, sqlCreateSequenceMethods inherited from class org.tentackle.sql.backends.AbstractSql92Backend
getCoalesceKeyword, isLeadingSelectMissing, sqlCreateForeignKey, sqlCreateSequenceComment, sqlDropForeignKeyMethods inherited from class org.tentackle.sql.backends.AbstractBackend
buildSelectSql, columnTypeToString, createIndexColumnMetaData, createIndexMetaData, createPassword, createScriptRunner, createTableMetaData, getBlockCommentBegin, getBlockCommentBegins, getBlockCommentEnd, getBlockCommentEnds, getDefaultSchema, getDefaultSize, getMaxScale, getMetaData, getMigrationStrategy, getModelMetaData, getSingleLineComment, getSingleLineComments, getStatementSeparator, getStatementSeparators, getTableHeaders, getTableMetaData, isAliasRequiredForSubSelect, isArrayOperatorSupported, isClobSupported, isCommunicationLinkException, isConstraintException, isDatabaseInMemory, isDefaultEqual, isDropIfExistsEnabled, isDropIfExistsSupported, isExceptionErrorCodeMatching, isExceptionStateMatching, isExceptionStateStartingWith, isExpressionReferringToTableBeingUpdatedSupported, isFilteredIndexSupported, isFunctionBasedIndexSupported, isMatchingName, isPosixEscapeSyntaxSupported, isReleaseSavepointSupported, isReservedWord, isTxRequiredForFetchsize, isUUIDSupported, normalizeDefault, optimizeSql, setArray, setDropIfExistsEnabled, sqlAlterColumnComment, sqlAlterTableComment, sqlAsBeforeTableAlias, sqlComment, sqlCreateColumn, sqlCreateIndex, sqlCreateSchema, sqlCreateTableAttributeWithoutComment, sqlCreateTableClosing, sqlCreateTableIntro, sqlCreateTableIntroWithoutComment, sqlDropColumn, sqlDropIndex, sqlDropTable, sqlFunction, sqlJoin, sqlJoinSelects, sqlJoinSelects, sqlRenameAndAlterColumnType, sqlRenameColumn, sqlRenameIndex, sqlUpdateToNotNull, toInternalType, toQuotedString, toString
-
Constructor Details
-
Oracle
public Oracle()Creates the Oracle backend.
-
-
Method Details
-
isDeprecated
public boolean isDeprecated()Description copied from interface:BackendReturns whether this backend is deprecated and superseded by a newer implementation.
Deprecated backends are omitted fromBackendFactory.getAllBackends().- Specified by:
isDeprecatedin interfaceBackend- Overrides:
isDeprecatedin classOracle8- Returns:
- true if deprecated
-
getName
Description copied from interface:BackendGets the name of the backend. -
validateVersion
public void validateVersion(int databaseMajorVersion, int databaseMinorVersion) Description copied from interface:BackendVerifies that the major and minor version of the connection's metadata is compatible with this backend.
If the latest backend is not compatible, the URL may be post-fixed with a backend type for an older version, for example:jdbc:oracle:thin:@//localhost:1521/xe|Oracle8
Throws
BackendExceptionif incompatible.- Specified by:
validateVersionin interfaceBackend- Overrides:
validateVersionin classAbstractBackend- Parameters:
databaseMajorVersion- the major versiondatabaseMinorVersion- the minor version- See Also:
-
buildSelectSql
Description copied from interface:BackendCreates a select statement string from an inner sql string.sqlBuilderis anything as[SELECT] FROM... WHERE... ORDER BY....
It is decorated with a leadingSELECT, if missing, plus optional clauses like for the given parameters.- Specified by:
buildSelectSqlin interfaceBackend- Overrides:
buildSelectSqlin classOracle8- Parameters:
sqlBuilder- the sql builder, initially containing the inner sql without leadingSELECT.writeLock- true select should write locklimit- the limit value, ≤ 0 if no limit clauseoffset- the offset value, ≤ 0 if no offset clause
-
extractWhereClause
Description copied from class:AbstractBackendExtracts the where clause from a given sql.- Overrides:
extractWhereClausein classOracle8- Parameters:
sql- the sql statementwhereOffset- the location of WHERE in sql- Returns:
- the where clause without the keyword WHERE
-