Package org.pentaho.di.core.database
Class OracleDatabaseMeta
- java.lang.Object
-
- org.pentaho.di.core.database.BaseDatabaseMeta
-
- org.pentaho.di.core.database.OracleDatabaseMeta
-
- All Implemented Interfaces:
Cloneable,DatabaseInterface,DatabaseInterfaceExtended
public class OracleDatabaseMeta extends BaseDatabaseMeta implements DatabaseInterface
Contains Oracle specific information through static final members- Since:
- 11-mrt-2005
- Author:
- Matt
-
-
Field Summary
-
Fields inherited from class org.pentaho.di.core.database.BaseDatabaseMeta
ATTRIBUTE_CLUSTER_DBNAME_PREFIX, ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX, ATTRIBUTE_CLUSTER_PASSWORD_PREFIX, ATTRIBUTE_CLUSTER_PORT_PREFIX, ATTRIBUTE_CLUSTER_USERNAME_PREFIX, ATTRIBUTE_FORCE_IDENTIFIERS_TO_LOWERCASE, ATTRIBUTE_FORCE_IDENTIFIERS_TO_UPPERCASE, ATTRIBUTE_INITIAL_POOL_SIZE, ATTRIBUTE_IS_CLUSTERED, ATTRIBUTE_MAXIMUM_POOL_SIZE, ATTRIBUTE_MSSQL_DOUBLE_DECIMAL_SEPARATOR, ATTRIBUTE_POOLING_PARAMETER_PREFIX, ATTRIBUTE_PORT_NUMBER, ATTRIBUTE_PREFERRED_SCHEMA_NAME, ATTRIBUTE_PREFIX_EXTRA_OPTION, ATTRIBUTE_PRESERVE_RESERVED_WORD_CASE, ATTRIBUTE_QUOTE_ALL_FIELDS, ATTRIBUTE_SQL_CONNECT, ATTRIBUTE_SUPPORTS_BOOLEAN_DATA_TYPE, ATTRIBUTE_SUPPORTS_TIMESTAMP_DATA_TYPE, ATTRIBUTE_USE_POOLING, ATTRIBUTE_USE_RESULT_STREAMING, AUTOINCREMENT_SQL_FOR_BATCH_ID, NAMED_CLUSTER_ID, poolingParameters, releaseSavepoint, SELECT_COUNT_STATEMENT, SEQUENCE_FOR_BATCH_ID
-
-
Constructor Summary
Constructors Constructor Description OracleDatabaseMeta()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancheckIndexExists(Database database, String schemaName, String tableName, String[] idxFields)Verifies on the specified database connection if an index exists on the fields with the specified name.SqlScriptParsercreateSqlScriptParser()Create SqlScriptParser for current database dialectint[]getAccessTypeList()Get the list of possible access types for a database.StringgetAddColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)Generates the SQL statement to add a column to the specified tableintgetDefaultDatabasePort()StringgetDriverClass()Obtain the name of the JDBC driver class that we need to use!StringgetDropColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)Generates the SQL statement to drop a column from the specified tableStringgetDropTableIfExistsStatement(String tableName)Oracle does not support a construct like 'drop table if exists', which is apparently legal syntax in many other RDBMSs.StringgetExtraOptionsHelpText()StringgetFieldDefinition(ValueMetaInterface v, String tk, String pk, boolean useAutoinc, boolean addFieldName, boolean addCr)Describe a Value as a field in the database.StringgetLimitClause(int nrRows)intgetMaxColumnsInIndex()intgetMaxVARCHARLength()Get the maximum length of a text field (VARCHAR) for this database connection.StringgetModifyColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)Generates the SQL statement to modify a column in the specified tableString[]getReservedWords()StringgetSQLColumnExists(String columnname, String tablename)StringgetSQLCurrentSequenceValue(String sequenceName)Get the current value of a database sequenceStringgetSQLListOfProcedures()StringgetSQLListOfSequences()StringgetSQLLockTables(String[] tableNames)StringgetSQLNextSequenceValue(String sequenceName)Get the SQL to get the next value of a sequence.StringgetSQLQueryColumnFields(String columnname, String tableName)StringgetSQLQueryFields(String tableName)Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database tableStringgetSQLSequenceExists(String sequenceName)Check if a sequence exists.StringgetSQLTableExists(String tablename)StringgetSQLUnlockTables(String[] tableNames)StringgetTablespaceDDL(VariableSpace variables, DatabaseMeta databaseMeta, String tablespace)Returns an empty string as most databases do not support tablespaces.StringgetURL(String hostname, String port, String databaseName)String[]getUsedLibraries()booleanneedsToLockAllTables()StringquoteSQLString(String string)Adds quotes around the string according to the database dialect and also escapes special characters like CR, LF and the quote character itself.booleanreleaseSavepoint()Returns a false as Oracle does not allow for the releasing of savepoints.booleanrequiresCreateTablePrimaryKeyAppend()voidsetStrictBigNumberInterpretation(boolean strictBigNumberInterpretation)booleanstrictBigNumberInterpretation()booleansupportsAutoInc()booleansupportsErrorHandlingOnBatchUpdates()booleansupportsOptionsInURL()Oracle doesn't support options in the URL, we need to put these in a Properties object at connection time...booleansupportsRepository()booleansupportsSequenceNoMaxValueOption()booleansupportsSequences()booleansupportsSynonyms()booleanuseSchemaNameForTableList()-
Methods inherited from class org.pentaho.di.core.database.BaseDatabaseMeta
addAttribute, addDefaultOptions, addExtraOption, canTest, clone, customizeValueFromSQLType, fullExceptionLog, generateColumnAlias, getAccessType, getAttribute, getAttributes, getBackwardsCompatibleSchemaTableCombination, getBackwardsCompatibleTable, getConnectionPoolingProperties, getConnectSQL, getCreateTableStatement, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDefaultOptions, getDisplayName, getEndQuote, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionValueSeparator, getFieldnameProtector, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getName, getNamedCluster, getNextBatchId, getNextBatchIdUsingAutoIncSQL, getNextBatchIdUsingLockTables, getNextBatchIdUsingSequence, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfSchemas, getSqlScriptStatements, getSQLValue, getStartQuote, getSynonymTypes, getTableTypes, getTruncateTableStatement, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, onlySpaces, parseStatements, preserveReservedCase, quoteReservedWords, requiresCastToVariousForIsNull, requiresName, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setDisplayName, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setInitialPoolSizeString, setMaximumPoolSize, setMaximumPoolSizeString, setName, setNamedCluster, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setPreserveReservedCase, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setSupportsTimestampDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsAutoGeneratedKeys, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsNewLinesInSQL, supportsPreparedStatementMetadataRetrieval, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsTimestampDataType, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.pentaho.di.core.database.DatabaseInterface
addAttribute, addDefaultOptions, addExtraOption, clone, customizeValueFromSQLType, generateColumnAlias, getAccessType, getAttribute, getAttributes, getConnectionPoolingProperties, getConnectSQL, getCreateTableStatement, getDatabaseFactoryName, getDatabaseName, getDatabasePortNumberString, getDataTablespace, getDataTablespaceDDL, getDefaultOptions, getDisplayName, getEndQuote, getExtraOptionIndicator, getExtraOptions, getExtraOptionSeparator, getExtraOptionValueSeparator, getFunctionAverage, getFunctionCount, getFunctionMaximum, getFunctionMinimum, getFunctionSum, getHostname, getIndexTablespace, getIndexTablespaceDDL, getInitialPoolSize, getInitialPoolSizeString, getLegacyColumnName, getMaximumPoolSize, getMaximumPoolSizeString, getMaxTextFieldLength, getName, getNamedCluster, getNamedClusterList, getNextBatchId, getNotFoundTK, getObjectId, getPartitioningInformation, getPassword, getPluginId, getPluginName, getPreferredSchemaName, getSafeFieldname, getSchemas, getSchemaTableCombination, getSelectCountStatement, getSequenceNoMaxValueOption, getServername, getSQLInsertAutoIncUnknownDimensionRow, getSQLListOfSchemas, getSQLListOfSchemas, getSqlScriptStatements, getSQLValue, getStartQuote, getSynonymTypes, getTables, getTableTypes, getTruncateTableStatement, getUnsupportedTableOutputMessage, getUsername, getValueFromResultSet, getViewTypes, getXulOverlayFile, isChanged, isDefaultingToUppercase, isDisplaySizeTwiceThePrecision, isExplorable, isFetchSizeSupported, isForcingIdentifiersToLowerCase, isForcingIdentifiersToUpperCase, isMySQLVariant, isPartitioned, isQuoteAllFields, isRequiringTransactionsOnQueries, isStreamingResults, isSystemTable, isUsingConnectionPool, isUsingDoubleDecimalAsSchemaTableSeparator, needsPlaceHolder, parseStatements, preserveReservedCase, putOptionalOptions, quoteReservedWords, requiresCastToVariousForIsNull, setAccessType, setAttributes, setChanged, setConnectionPoolingProperties, setConnectSQL, setDatabaseName, setDatabasePortNumberString, setDataTablespace, setDisplayName, setForcingIdentifiersToLowerCase, setForcingIdentifiersToUpperCase, setHostname, setIndexTablespace, setInitialPoolSize, setInitialPoolSizeString, setMaximumPoolSize, setMaximumPoolSizeString, setName, setNamedCluster, setObjectId, setPartitioned, setPartitioningInformation, setPassword, setPluginId, setPluginName, setPreferredSchemaName, setPreserveReservedCase, setQuoteAllFields, setServername, setStreamingResults, setSupportsBooleanDataType, setSupportsTimestampDataType, setUsername, setUsingConnectionPool, setUsingDoubleDecimalAsSchemaTableSeparator, supportsAutoGeneratedKeys, supportsBatchUpdates, supportsBitmapIndex, supportsBooleanDataType, supportsCatalogs, supportsEmptyTransactions, supportsErrorHandling, supportsFloatRoundingOnUpdate, supportsGetBlob, supportsIndexes, supportsNewLinesInSQL, supportsPreparedStatementMetadataRetrieval, supportsResultSetMetadataRetrievalOnly, supportsSchemas, supportsSetCharacterStream, supportsSetLong, supportsSetMaxRows, supportsStandardTableOutput, supportsTimestampDataType, supportsTimeStampToDateConversion, supportsTransactions, supportsViews, useSafePoints
-
-
-
-
Method Detail
-
getAccessTypeList
public int[] getAccessTypeList()
Description copied from interface:DatabaseInterfaceGet the list of possible access types for a database.- Specified by:
getAccessTypeListin interfaceDatabaseInterface- Specified by:
getAccessTypeListin classBaseDatabaseMeta- Returns:
- the list of possible access types for a database.
-
getDefaultDatabasePort
public int getDefaultDatabasePort()
- Specified by:
getDefaultDatabasePortin interfaceDatabaseInterface- Overrides:
getDefaultDatabasePortin classBaseDatabaseMeta- Returns:
- the default database port number
-
supportsAutoInc
public boolean supportsAutoInc()
- Specified by:
supportsAutoIncin interfaceDatabaseInterface- Overrides:
supportsAutoIncin classBaseDatabaseMeta- Returns:
- Whether or not the database can use auto increment type of fields (pk)
-
getLimitClause
public String getLimitClause(int nrRows)
- Specified by:
getLimitClausein interfaceDatabaseInterface- Overrides:
getLimitClausein classBaseDatabaseMeta- Parameters:
nrRows- The number of rows to which we want to limit the result of the query.- Returns:
- the clause after a select statement to limit the number of rows
- See Also:
DatabaseInterface.getLimitClause(int)
-
getSQLQueryFields
public String getSQLQueryFields(String tableName)
Returns the minimal SQL to launch in order to determine the layout of the resultset for a given database table- Specified by:
getSQLQueryFieldsin interfaceDatabaseInterface- Overrides:
getSQLQueryFieldsin classBaseDatabaseMeta- Parameters:
tableName- The name of the table to determine the layout for- Returns:
- The SQL to launch.
-
getSQLTableExists
public String getSQLTableExists(String tablename)
- Specified by:
getSQLTableExistsin interfaceDatabaseInterface- Overrides:
getSQLTableExistsin classBaseDatabaseMeta- Parameters:
tablename- The table to verify the existance for- Returns:
- The SQL to execute to verify if the given table exists. If an Exception is thrown for this SQL, we don't have the table.
-
getSQLColumnExists
public String getSQLColumnExists(String columnname, String tablename)
- Specified by:
getSQLColumnExistsin interfaceDatabaseInterface- Overrides:
getSQLColumnExistsin classBaseDatabaseMeta- Parameters:
columnname- The column to verify the existance fortablename- The table to verify the existance for- Returns:
- The SQL to execute to verify if the given table exists. If an Exception is thrown for this SQL, we don't have the column.
-
needsToLockAllTables
public boolean needsToLockAllTables()
- Specified by:
needsToLockAllTablesin interfaceDatabaseInterface- Overrides:
needsToLockAllTablesin classBaseDatabaseMeta- Returns:
- true if the database needs all repository tables to be locked, not just one ref table (R_REPOSITORY_LOG)
-
getDriverClass
public String getDriverClass()
Description copied from interface:DatabaseInterfaceObtain the name of the JDBC driver class that we need to use!- Specified by:
getDriverClassin interfaceDatabaseInterface- Returns:
- the name of the JDBC driver class for the specific database
-
getURL
public String getURL(String hostname, String port, String databaseName) throws KettleDatabaseException
- Specified by:
getURLin interfaceDatabaseInterface- Parameters:
hostname- the hostnameport- the port as a stringdatabaseName- the database name- Returns:
- the URL to use for connecting to the database.
- Throws:
KettleDatabaseException- in case a configuration error is detected.
-
supportsOptionsInURL
public boolean supportsOptionsInURL()
Oracle doesn't support options in the URL, we need to put these in a Properties object at connection time...- Specified by:
supportsOptionsInURLin interfaceDatabaseInterface- Overrides:
supportsOptionsInURLin classBaseDatabaseMeta- Returns:
- true if the database supports connection options in the URL, false if they are put in a Properties object.
-
supportsSequences
public boolean supportsSequences()
- Specified by:
supportsSequencesin interfaceDatabaseInterface- Overrides:
supportsSequencesin classBaseDatabaseMeta- Returns:
- true if the database supports sequences
-
getSQLSequenceExists
public String getSQLSequenceExists(String sequenceName)
Check if a sequence exists.- Specified by:
getSQLSequenceExistsin interfaceDatabaseInterface- Overrides:
getSQLSequenceExistsin classBaseDatabaseMeta- Parameters:
sequenceName- The sequence to check- Returns:
- The SQL to get the name of the sequence back from the databases data dictionary
-
getSQLCurrentSequenceValue
public String getSQLCurrentSequenceValue(String sequenceName)
Get the current value of a database sequence- Specified by:
getSQLCurrentSequenceValuein interfaceDatabaseInterface- Overrides:
getSQLCurrentSequenceValuein classBaseDatabaseMeta- Parameters:
sequenceName- The sequence to check- Returns:
- The current value of a database sequence
-
getSQLNextSequenceValue
public String getSQLNextSequenceValue(String sequenceName)
Get the SQL to get the next value of a sequence. (Oracle only)- Specified by:
getSQLNextSequenceValuein interfaceDatabaseInterface- Overrides:
getSQLNextSequenceValuein classBaseDatabaseMeta- Parameters:
sequenceName- The sequence name- Returns:
- the SQL to get the next value of a sequence. (Oracle only)
-
supportsSequenceNoMaxValueOption
public boolean supportsSequenceNoMaxValueOption()
- Specified by:
supportsSequenceNoMaxValueOptionin interfaceDatabaseInterface- Overrides:
supportsSequenceNoMaxValueOptionin classBaseDatabaseMeta- Returns:
- true if the database supports the NOMAXVALUE sequence option. The default is false, AS/400 and DB2 support this.
-
useSchemaNameForTableList
public boolean useSchemaNameForTableList()
- Specified by:
useSchemaNameForTableListin interfaceDatabaseInterface- Overrides:
useSchemaNameForTableListin classBaseDatabaseMeta- Returns:
- true if we need to supply the schema-name to getTables in order to get a correct list of items.
-
supportsSynonyms
public boolean supportsSynonyms()
- Specified by:
supportsSynonymsin interfaceDatabaseInterface- Overrides:
supportsSynonymsin classBaseDatabaseMeta- Returns:
- true if the database supports synonyms
-
getAddColumnStatement
public String getAddColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)
Generates the SQL statement to add a column to the specified table- Specified by:
getAddColumnStatementin interfaceDatabaseInterface- Parameters:
tablename- The table to addv- The column defined as a valuetk- the name of the technical key fielduseAutoinc- whether or not this field uses auto incrementpk- the name of the primary key fieldsemicolon- whether or not to add a semi-colon behind the statement.- Returns:
- the SQL statement to add a column to the specified table
-
getDropColumnStatement
public String getDropColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)
Generates the SQL statement to drop a column from the specified table- Specified by:
getDropColumnStatementin interfaceDatabaseInterface- Overrides:
getDropColumnStatementin classBaseDatabaseMeta- Parameters:
tablename- The table to addv- The column defined as a valuetk- the name of the technical key fielduseAutoinc- whether or not this field uses auto incrementpk- the name of the primary key fieldsemicolon- whether or not to add a semi-colon behind the statement.- Returns:
- the SQL statement to drop a column from the specified table
-
getModifyColumnStatement
public String getModifyColumnStatement(String tablename, ValueMetaInterface v, String tk, boolean useAutoinc, String pk, boolean semicolon)
Generates the SQL statement to modify a column in the specified table- Specified by:
getModifyColumnStatementin interfaceDatabaseInterface- Parameters:
tablename- The table to addv- The column defined as a valuetk- the name of the technical key fielduseAutoinc- whether or not this field uses auto incrementpk- the name of the primary key fieldsemicolon- whether or not to add a semi-colon behind the statement.- Returns:
- the SQL statement to modify a column in the specified table
-
getFieldDefinition
public String getFieldDefinition(ValueMetaInterface v, String tk, String pk, boolean useAutoinc, boolean addFieldName, boolean addCr)
Description copied from interface:DatabaseInterfaceDescribe a Value as a field in the database.- Specified by:
getFieldDefinitionin interfaceDatabaseInterface- Parameters:
v- The value to describetk- The field that's going to be the technical keypk- The field that's going to be the primary keyuseAutoinc- Use autoincrement or notaddFieldName- Add the fieldname to the definition or notaddCr- Add a cariage return at the end of the definition or not.- Returns:
- a value described as a field in this database.
-
getReservedWords
public String[] getReservedWords()
- Specified by:
getReservedWordsin interfaceDatabaseInterface- Overrides:
getReservedWordsin classBaseDatabaseMeta- Returns:
- an array of reserved words for the database type...
-
getSQLListOfProcedures
public String getSQLListOfProcedures()
- Specified by:
getSQLListOfProceduresin interfaceDatabaseInterface- Overrides:
getSQLListOfProceduresin classBaseDatabaseMeta- Returns:
- The SQL on this database to get a list of stored procedures.
-
getSQLLockTables
public String getSQLLockTables(String[] tableNames)
- Specified by:
getSQLLockTablesin interfaceDatabaseInterface- Overrides:
getSQLLockTablesin classBaseDatabaseMeta- Parameters:
tableNames- The names of the tables to lock- Returns:
- The SQL command to lock database tables for write purposes. null is returned in case locking is not supported on the target database. null is the default value
-
getSQLUnlockTables
public String getSQLUnlockTables(String[] tableNames)
- Specified by:
getSQLUnlockTablesin interfaceDatabaseInterface- Overrides:
getSQLUnlockTablesin classBaseDatabaseMeta- Parameters:
tableNames- The names of the tables to unlock- Returns:
- The SQL command to unlock database tables. null is returned in case locking is not supported on the target database. null is the default value
-
getExtraOptionsHelpText
public String getExtraOptionsHelpText()
- Specified by:
getExtraOptionsHelpTextin interfaceDatabaseInterface- Overrides:
getExtraOptionsHelpTextin classBaseDatabaseMeta- Returns:
- extra help text on the supported options on the selected database platform.
-
getUsedLibraries
public String[] getUsedLibraries()
- Specified by:
getUsedLibrariesin interfaceDatabaseInterface- Returns:
- the required libraries (in lib) for this database connection.
-
checkIndexExists
public boolean checkIndexExists(Database database, String schemaName, String tableName, String[] idxFields) throws KettleDatabaseException
Verifies on the specified database connection if an index exists on the fields with the specified name.- Specified by:
checkIndexExistsin interfaceDatabaseInterface- Overrides:
checkIndexExistsin classBaseDatabaseMeta- Parameters:
database- a connected databaseschemaName-tableName-idxFields-- Returns:
- true if the index exists, false if it doesn't.
- Throws:
KettleDatabaseException
-
requiresCreateTablePrimaryKeyAppend
public boolean requiresCreateTablePrimaryKeyAppend()
- Specified by:
requiresCreateTablePrimaryKeyAppendin interfaceDatabaseInterface- Overrides:
requiresCreateTablePrimaryKeyAppendin classBaseDatabaseMeta- Returns:
- true if we need to append the PRIMARY KEY block in the create table block after the fields, required for Cache.
-
getMaxColumnsInIndex
public int getMaxColumnsInIndex()
- Specified by:
getMaxColumnsInIndexin interfaceDatabaseInterface- Overrides:
getMaxColumnsInIndexin classBaseDatabaseMeta- Returns:
- The maximum number of columns in a database, <=0 means: no known limit
-
getSQLListOfSequences
public String getSQLListOfSequences()
- Specified by:
getSQLListOfSequencesin interfaceDatabaseInterface- Overrides:
getSQLListOfSequencesin classBaseDatabaseMeta- Returns:
- The SQL on this database to get a list of sequences.
-
quoteSQLString
public String quoteSQLString(String string)
Description copied from interface:DatabaseInterfaceAdds quotes around the string according to the database dialect and also escapes special characters like CR, LF and the quote character itself.- Specified by:
quoteSQLStringin interfaceDatabaseInterface- Overrides:
quoteSQLStringin classBaseDatabaseMeta- Parameters:
string-- Returns:
- A string that is properly quoted for use in an Oracle SQL statement (insert, update, delete, etc)
-
releaseSavepoint
public boolean releaseSavepoint()
Returns a false as Oracle does not allow for the releasing of savepoints.- Specified by:
releaseSavepointin interfaceDatabaseInterface- Overrides:
releaseSavepointin classBaseDatabaseMeta- Returns:
-
getTablespaceDDL
public String getTablespaceDDL(VariableSpace variables, DatabaseMeta databaseMeta, String tablespace)
Returns an empty string as most databases do not support tablespaces. Subclasses can override this method to generate the DDL.- Overrides:
getTablespaceDDLin classBaseDatabaseMeta- Parameters:
variables- variables needed for variable substitution.databaseMeta- databaseMeta needed for it's quoteField method. Since we are doing variable substitution we need to meta so that we can act on the variable substitution first and then the creation of the entire string that will be retuned.tablespace- tablespaceName name of the tablespace.- Returns:
- String the TABLESPACE tablespaceName section of an Oracle CREATE DDL statement.
-
supportsErrorHandlingOnBatchUpdates
public boolean supportsErrorHandlingOnBatchUpdates()
- Specified by:
supportsErrorHandlingOnBatchUpdatesin interfaceDatabaseInterface- Overrides:
supportsErrorHandlingOnBatchUpdatesin classBaseDatabaseMeta- Returns:
- true if the database supports error handling (recovery of failure) while doing batch updates.
-
supportsRepository
public boolean supportsRepository()
- Specified by:
supportsRepositoryin interfaceDatabaseInterface- Overrides:
supportsRepositoryin classBaseDatabaseMeta- Returns:
- true if Kettle can create a repository on this type of database.
-
getMaxVARCHARLength
public int getMaxVARCHARLength()
Description copied from class:BaseDatabaseMetaGet the maximum length of a text field (VARCHAR) for this database connection. If this size is exceeded use a CLOB.- Specified by:
getMaxVARCHARLengthin interfaceDatabaseInterface- Overrides:
getMaxVARCHARLengthin classBaseDatabaseMeta- Returns:
- The maximum VARCHAR field length for this database type. (mostly identical to getMaxTextFieldLength() - CLOB_LENGTH)
-
getDropTableIfExistsStatement
public String getDropTableIfExistsStatement(String tableName)
Oracle does not support a construct like 'drop table if exists', which is apparently legal syntax in many other RDBMSs. So we need to implement the same behavior and avoid throwing 'table does not exist' exception.- Specified by:
getDropTableIfExistsStatementin interfaceDatabaseInterfaceExtended- Overrides:
getDropTableIfExistsStatementin classBaseDatabaseMeta- Parameters:
tableName- Name of the table to drop- Returns:
- 'drop table if exists'-like statement for Oracle
-
createSqlScriptParser
public SqlScriptParser createSqlScriptParser()
Description copied from interface:DatabaseInterfaceCreate SqlScriptParser for current database dialect- Specified by:
createSqlScriptParserin interfaceDatabaseInterface- Returns:
- instance of SqlScriptParser for current database dialect
-
strictBigNumberInterpretation
public boolean strictBigNumberInterpretation()
- Returns:
- true if using strict number(38) interpretation
-
setStrictBigNumberInterpretation
public void setStrictBigNumberInterpretation(boolean strictBigNumberInterpretation)
- Parameters:
strictBigNumberInterpretation- true if use strict number(38) interpretation
-
-