Package oracle.jdbc

## Interface AdditionalDatabaseMetaData

All Superinterfaces:
  `java.sql.DatabaseMetaData`, `java.sql.Wrapper`

All Known Implementing Classes:
  `OracleDatabaseMetaData`

    public interface AdditionalDatabaseMetaData
    extends java.sql.DatabaseMetaData

This interface defines additional Oracle specific methods for DatabaseMetaData. Rightfully it should be called OracleDatabaseMetaData, but that name is already used by the class that implements DatabaseMetaData for the Oracle JDBC drivers. That class implements this interface. Best practice is to use the standard Java interface, java.sql.DatabaseMetaData. If your app requires access to the additional Oracle specific information then cast the result of getDatabaseMetaData to this type, AdditionalDatabaseMetaData. Use of the class OracleDatabaseMetaData is not recommended and will cause ClassCastException if used with some new Oracle JDBC features.

Since:
  11.2.0.3.0

### Field Summary

### Fields inherited from interface java.sql.DatabaseMetaData

`attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, functionColumnIn, functionColumnInOut, functionColumnOut, functionColumnResult, functionColumnUnknown, functionNoNulls, functionNoTable, functionNullable, functionNullableUnknown, functionResultUnknown, functionReturn, functionReturnsTable, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown`

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`java.lang.String` `getAccessBanner()` Returns the access banner on this connection.
`default java.util.Map<java.lang.String,​java.lang.String>` `getAnnotations​(java.lang.String objectName, java.lang.String domainName, java.lang.String domainOwner)` Since 23ai, annotations can be specified to schema objects such as tables, views and columns.
`default java.util.Map<java.lang.String,​java.lang.String>` `getAnnotations​(java.lang.String objectName, java.lang.String columnName, java.lang.String domainName, java.lang.String domainOwner)` Since 23ai, annotations can be specified to schema objects such as tables, views and columns.
`java.lang.String` `getAuditBanner()` Returns the audit banner on this connection.
`java.sql.ResultSet` `getJsonSchema​(java.lang.String viewName)` Gets the schema of the JSON Duality view
`long` `getLobMaxLength()` The max size of a lob on the server for this connection.
`OracleTypeMetaData` `getOracleTypeMetaData​(java.lang.String sqlTypeName)` Return the type metadata for a named type.
`boolean` `isDualityView​(java.lang.String viewName)` Checks whether the view mentioned exists and is a JSON Duality view

### Methods inherited from interface java.sql.DatabaseMetaData

`allProceduresAreCallable, allTablesAreSelectable, autoCommitFailureClosesAllResultSets, dataDefinitionCausesTransactionCommit, dataDefinitionIgnoredInTransactions, deletesAreDetected, doesMaxRowSizeIncludeBlobs, generatedKeyAlwaysReturned, getAttributes, getBestRowIdentifier, getCatalogs, getCatalogSeparator, getCatalogTerm, getClientInfoProperties, getColumnPrivileges, getColumns, getConnection, getCrossReference, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDefaultTransactionIsolation, getDriverMajorVersion, getDriverMinorVersion, getDriverName, getDriverVersion, getExportedKeys, getExtraNameCharacters, getFunctionColumns, getFunctions, getIdentifierQuoteString, getImportedKeys, getIndexInfo, getJDBCMajorVersion, getJDBCMinorVersion, getMaxBinaryLiteralLength, getMaxCatalogNameLength, getMaxCharLiteralLength, getMaxColumnNameLength, getMaxColumnsInGroupBy, getMaxColumnsInIndex, getMaxColumnsInOrderBy, getMaxColumnsInSelect, getMaxColumnsInTable, getMaxConnections, getMaxCursorNameLength, getMaxIndexLength, getMaxLogicalLobSize, getMaxProcedureNameLength, getMaxRowSize, getMaxSchemaNameLength, getMaxStatementLength, getMaxStatements, getMaxTableNameLength, getMaxTablesInSelect, getMaxUserNameLength, getNumericFunctions, getPrimaryKeys, getProcedureColumns, getProcedures, getProcedureTerm, getPseudoColumns, getResultSetHoldability, getRowIdLifetime, getSchemas, getSchemas, getSchemaTerm, getSearchStringEscape, getSQLKeywords, getSQLStateType, getStringFunctions, getSuperTables, getSuperTypes, getSystemFunctions, getTablePrivileges, getTables, getTableTypes, getTimeDateFunctions, getTypeInfo, getUDTs, getURL, getUserName, getVersionColumns, insertsAreDetected, isCatalogAtStart, isReadOnly, locatorsUpdateCopy, nullPlusNonNullIsNull, nullsAreSortedAtEnd, nullsAreSortedAtStart, nullsAreSortedHigh, nullsAreSortedLow, othersDeletesAreVisible, othersInsertsAreVisible, othersUpdatesAreVisible, ownDeletesAreVisible, ownInsertsAreVisible, ownUpdatesAreVisible, storesLowerCaseIdentifiers, storesLowerCaseQuotedIdentifiers, storesMixedCaseIdentifiers, storesMixedCaseQuotedIdentifiers, storesUpperCaseIdentifiers, storesUpperCaseQuotedIdentifiers, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsANSI92EntryLevelSQL, supportsANSI92FullSQL, supportsANSI92IntermediateSQL, supportsBatchUpdates, supportsCatalogsInDataManipulation, supportsCatalogsInIndexDefinitions, supportsCatalogsInPrivilegeDefinitions, supportsCatalogsInProcedureCalls, supportsCatalogsInTableDefinitions, supportsColumnAliasing, supportsConvert, supportsConvert, supportsCoreSQLGrammar, supportsCorrelatedSubqueries, supportsDataDefinitionAndDataManipulationTransactions, supportsDataManipulationTransactionsOnly, supportsDifferentTableCorrelationNames, supportsExpressionsInOrderBy, supportsExtendedSQLGrammar, supportsFullOuterJoins, supportsGetGeneratedKeys, supportsGroupBy, supportsGroupByBeyondSelect, supportsGroupByUnrelated, supportsIntegrityEnhancementFacility, supportsLikeEscapeClause, supportsLimitedOuterJoins, supportsMinimumSQLGrammar, supportsMixedCaseIdentifiers, supportsMixedCaseQuotedIdentifiers, supportsMultipleOpenResults, supportsMultipleResultSets, supportsMultipleTransactions, supportsNamedParameters, supportsNonNullableColumns, supportsOpenCursorsAcrossCommit, supportsOpenCursorsAcrossRollback, supportsOpenStatementsAcrossCommit, supportsOpenStatementsAcrossRollback, supportsOrderByUnrelated, supportsOuterJoins, supportsPositionedDelete, supportsPositionedUpdate, supportsRefCursors, supportsResultSetConcurrency, supportsResultSetHoldability, supportsResultSetType, supportsSavepoints, supportsSchemasInDataManipulation, supportsSchemasInIndexDefinitions, supportsSchemasInPrivilegeDefinitions, supportsSchemasInProcedureCalls, supportsSchemasInTableDefinitions, supportsSelectForUpdate, supportsSharding, supportsStatementPooling, supportsStoredFunctionsUsingCallSyntax, supportsStoredProcedures, supportsSubqueriesInComparisons, supportsSubqueriesInExists, supportsSubqueriesInIns, supportsSubqueriesInQuantifieds, supportsTableCorrelationNames, supportsTransactionIsolationLevel, supportsTransactions, supportsUnion, supportsUnionAll, updatesAreDetected, usesLocalFilePerTable, usesLocalFiles`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Method Detail

#### getOracleTypeMetaData

    OracleTypeMetaData getOracleTypeMetaData​(java.lang.String sqlTypeName)
                                      throws java.sql.SQLException

Return the type metadata for a named type. Use this instead of the various Descriptor classes and methods. Use of the Descriptor classes and methods such as oracle.sql.TypeDescriptor, is not recommended and will cause ClassCastException if used with some new Oracle JDBC features.

Parameters:
  `sqlTypeName` - the name of the type
Returns:
  the metadata for the type
Throws:
  `java.sql.SQLException` - if the type does not exist or some other error occurs
Since:
  11.2.0.3.0

#### getLobMaxLength

    long getLobMaxLength()
                  throws java.sql.SQLException

The max size of a lob on the server for this connection. Note that the actual size available for a particular lob will depend on the specific storage allocation.

Returns:
  Max size of lob.
Throws:
  `java.sql.SQLException`
Since:
  11.2.0.3.0

#### getAuditBanner

    java.lang.String getAuditBanner()
                             throws java.sql.SQLException

Returns the audit banner on this connection.

Returns:
  String containing the audit banner or a null String if there isn't one available on this connection.
Throws:
  `java.sql.SQLException` - if there is any issue while retrieving the banner

#### getAccessBanner

    java.lang.String getAccessBanner()
                              throws java.sql.SQLException

Returns the access banner on this connection.

Returns:
  String containing the access banner or a null String if there isn't one available on this connection.
Throws:
  `java.sql.SQLException` - if there is any issue while retrieving the banner

#### getAnnotations

    default java.util.Map<java.lang.String,​java.lang.String> getAnnotations​(java.lang.String objectName,
                                                                                  java.lang.String columnName,
                                                                                  java.lang.String domainName,
                                                                                  java.lang.String domainOwner)
                                                                           throws java.sql.SQLException

Since 23ai, annotations can be specified to schema objects such as tables, views and columns. Annotations is a mechanism to store application metadata centrally in the database. Annotations can be specified at creation time or at modification time. An individual annotation has a name and an optional value. Both the name and the value are freeform text fields. A schema object can have multiple annotations. This method returns annotation associated with the specified column. Returns `null` if there are no annotation for the given column.

Parameters:
  `objectName` - Table / View Name
  `columnName` - Name of the column
  `domainName` - Domain Name [Optional, can be null]
  `domainOwner` - Domain Owner [Optional, can be null]
Throws:
  `java.sql.SQLException`
See Also:
  `OracleResultSetMetaData.getAnnotations(int)`

#### getAnnotations

    default java.util.Map<java.lang.String,​java.lang.String> getAnnotations​(java.lang.String objectName,
                                                                                  java.lang.String domainName,
                                                                                  java.lang.String domainOwner)
                                                                           throws java.sql.SQLException

Since 23ai, annotations can be specified to schema objects such as tables, views and columns. Annotations is a mechanism to store application metadata centrally in the database. Annotations can be specified at creation time or at modification time. An individual annotation has a name and an optional value. Both the name and the value are freeform text fields. A schema object can have multiple annotations. This method returns annotation associated with the specified table or view. Returns `null` if there are no annotation for the given object.

Parameters:
  `objectName` - Table / View Name
  `domainName` - Domain Name [Optional, can be null]
  `domainOwner` - Domain Owner [Optional, can be null]
Throws:
  `java.sql.SQLException`

#### isDualityView

    boolean isDualityView​(java.lang.String viewName)
                   throws java.sql.SQLException

Checks whether the view mentioned exists and is a JSON Duality view

Parameters:
  `viewName` - the view that needs to be checked
Returns:
  true if the view exists and is a JSON Duality view, false otherwise
Throws:
  `java.sql.SQLException`

#### getJsonSchema

    java.sql.ResultSet getJsonSchema​(java.lang.String viewName)
                              throws java.sql.SQLException

Gets the schema of the JSON Duality view

Parameters:
  `viewName` - the view whose schema is to be extracted
Returns:
  Schema of the JSON Duality view if exists
Throws:
  `java.sql.SQLException` - if the json duality view does not exist