Comprehensive information about the database as a whole.
This interface is implemented by driver vendors to let users know the capabilities
of a Database Management System (DBMS) in combination with
the driver based on JDBCTM technology
("JDBC driver") that is used with it. Different relational DBMSs often support
different features, implement features in different ways, and use different
data types. In addition, a driver may implement a feature on top of what the
DBMS offers. Information returned by methods in this interface applies
to the capabilities of a particular driver and a particular DBMS working
together. Note that as used in this documentation, the term "database" is
used generically to refer to both the driver and DBMS.
A user for this interface is commonly a tool that needs to discover how to
deal with the underlying DBMS. This is especially true for applications
that are intended to be used with more than one DBMS. For example, a tool might use the method
getTypeInfo to find out what data types can be used in a
CREATE TABLE statement. Or a user might call the method
supportsCorrelatedSubqueries to see if it is possible to use
a correlated subquery or supportsBatchUpdates to see if it is
possible to use batch updates.
Some DatabaseMetaData methods return lists of information
in the form of ResultSet objects.
Regular ResultSet methods, such as
getString and getInt, can be used
to retrieve the data from these ResultSet objects. If
a given form of metadata is not available, an empty ResultSet
will be returned. Additional columns beyond the columns defined to be
returned by the ResultSet object for a given method
can be defined by the JDBC driver vendor and must be accessed
by their column label.
Some DatabaseMetaData methods take arguments that are
String patterns. These arguments all have names such as fooPattern.
Within a pattern String, "%" means match any substring of 0 or more
characters, and "_" means match any one character. Only metadata
entries matching the search pattern are returned. If a search pattern
argument is set to null, that argument's criterion will
be dropped from the search.
Field Summary
static short
attributeNoNulls
Indicates that NULL values might not be allowed.
static short
attributeNullable
Indicates that NULL values are definitely allowed.
importedKeyCascade
For the column UPDATE_RULE,
indicates that
when the primary key is updated, the foreign key (imported key)
is changed to agree with it.
importedKeyRestrict
For the column UPDATE_RULE, indicates that
a primary key may not be updated if it has been imported by
another table as a foreign key.
static int
importedKeySetDefault
For the columns UPDATE_RULE
and DELETE_RULE, indicates that
if the primary key is updated or deleted, the foreign key (imported key)
is set to the default value.
static int
importedKeySetNull
For the columns UPDATE_RULE
and DELETE_RULE, indicates that
when the primary key is updated or deleted, the foreign key (imported key)
is changed to NULL.
sqlStateSQL
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an SQLSTATE value.
static int
sqlStateSQL99
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an SQL99 SQLSTATE value.
static int
sqlStateXOpen
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an
X/Open (now know as Open Group) SQL CLI SQLSTATE value.
versionColumnUnknown
Indicates that this version column may or may not be a pseudo column.
Method Summary
boolean
allProceduresAreCallable()
Retrieves whether the current user can call all the procedures
returned by the method getProcedures.
boolean
allTablesAreSelectable()
Retrieves whether the current user can use all the tables returned
by the method getTables in a SELECT
statement.
boolean
autoCommitFailureClosesAllResultSets()
Retrieves whether a SQLException while autoCommit is true inidcates
that all open ResultSets are closed, even ones that are holdable.
deletesAreDetected(int type)
Retrieves whether or not a visible row delete can be detected by
calling the method ResultSet.rowDeleted.
boolean
doesMaxRowSizeIncludeBlobs()
Retrieves whether the return value for the method
getMaxRowSize includes the SQL data types
LONGVARCHAR and LONGVARBINARY.
getAttributes(String catalog,
String schemaPattern,
String typeNamePattern,
String attributeNamePattern)
Retrieves a description of the given attribute of the given type
for a user-defined type (UDT) that is available in the given schema
and catalog.
getBestRowIdentifier(String catalog,
String schema,
String table,
int scope,
boolean nullable)
Retrieves a description of a table's optimal set of columns that
uniquely identifies a row.
getColumns(String catalog,
String schemaPattern,
String tableNamePattern,
String columnNamePattern)
Retrieves a description of table columns available in
the specified catalog.
getCrossReference(String parentCatalog,
String parentSchema,
String parentTable,
String foreignCatalog,
String foreignSchema,
String foreignTable)
Retrieves a description of the foreign key columns in the given foreign key
table that reference the primary key or the columns representing a unique constraint of the parent table (could be the same or a different table).
getExportedKeys(String catalog,
String schema,
String table)
Retrieves a description of the foreign key columns that reference the
given table's primary key columns (the foreign keys exported by a
table).
getFunctionColumns(String catalog,
String schemaPattern,
String functionNamePattern,
String columnNamePattern)
Retrieves a description of the given catalog's system or user
function parameters and return type.
getFunctions(String catalog,
String schemaPattern,
String functionNamePattern)
Retrieves a description of the system and user functions available
in the given catalog.
getImportedKeys(String catalog,
String schema,
String table)
Retrieves a description of the primary key columns that are
referenced by the given table's foreign key columns (the primary keys
imported by a table).
getIndexInfo(String catalog,
String schema,
String table,
boolean unique,
boolean approximate)
Retrieves a description of the given table's indices and statistics.
int
getJDBCMajorVersion()
Retrieves the major JDBC version number for this
driver.
int
getJDBCMinorVersion()
Retrieves the minor JDBC version number for this
driver.
int
getMaxBinaryLiteralLength()
Retrieves the maximum number of hex characters this database allows in an
inline binary literal.
int
getMaxCatalogNameLength()
Retrieves the maximum number of characters that this database allows in a
catalog name.
int
getMaxCharLiteralLength()
Retrieves the maximum number of characters this database allows
for a character literal.
int
getMaxColumnNameLength()
Retrieves the maximum number of characters this database allows
for a column name.
int
getMaxColumnsInGroupBy()
Retrieves the maximum number of columns this database allows in a
GROUP BY clause.
int
getMaxColumnsInIndex()
Retrieves the maximum number of columns this database allows in an index.
int
getMaxColumnsInOrderBy()
Retrieves the maximum number of columns this database allows in an
ORDER BY clause.
int
getMaxColumnsInSelect()
Retrieves the maximum number of columns this database allows in a
SELECT list.
int
getMaxColumnsInTable()
Retrieves the maximum number of columns this database allows in a table.
int
getMaxConnections()
Retrieves the maximum number of concurrent connections to this
database that are possible.
int
getMaxCursorNameLength()
Retrieves the maximum number of characters that this database allows in a
cursor name.
int
getMaxIndexLength()
Retrieves the maximum number of bytes this database allows for an
index, including all of the parts of the index.
int
getMaxProcedureNameLength()
Retrieves the maximum number of characters that this database allows in a
procedure name.
int
getMaxRowSize()
Retrieves the maximum number of bytes this database allows in
a single row.
int
getMaxSchemaNameLength()
Retrieves the maximum number of characters that this database allows in a
schema name.
int
getMaxStatementLength()
Retrieves the maximum number of characters this database allows in
an SQL statement.
int
getMaxStatements()
Retrieves the maximum number of active statements to this database
that can be open at the same time.
int
getMaxTableNameLength()
Retrieves the maximum number of characters this database allows in
a table name.
int
getMaxTablesInSelect()
Retrieves the maximum number of tables this database allows in a
SELECT statement.
int
getMaxUserNameLength()
Retrieves the maximum number of characters this database allows in
a user name.
getProcedureColumns(String catalog,
String schemaPattern,
String procedureNamePattern,
String columnNamePattern)
Retrieves a description of the given catalog's stored procedure parameter
and result columns.
getProcedures(String catalog,
String schemaPattern,
String procedureNamePattern)
Retrieves a description of the stored procedures available in the given
catalog.
getRowIdLifetime()
Indicates whether or not this data source supports the SQL ROWID type,
and if so the lifetime for which a RowId object remains valid.
getSuperTables(String catalog,
String schemaPattern,
String tableNamePattern)
Retrieves a description of the table hierarchies defined in a particular
schema in this database.
getSuperTypes(String catalog,
String schemaPattern,
String typeNamePattern)
Retrieves a description of the user-defined type (UDT) hierarchies defined in a
particular schema in this database.
getTablePrivileges(String catalog,
String schemaPattern,
String tableNamePattern)
Retrieves a description of the access rights for each table available
in a catalog.
getTables(String catalog,
String schemaPattern,
String tableNamePattern,
String[] types)
Retrieves a description of the tables available in the given catalog.
getUDTs(String catalog,
String schemaPattern,
String typeNamePattern,
int[] types)
Retrieves a description of the user-defined types (UDTs) defined
in a particular schema.
getVersionColumns(String catalog,
String schema,
String table)
Retrieves a description of a table's columns that are automatically
updated when any value in a row is updated.
boolean
insertsAreDetected(int type)
Retrieves whether or not a visible row insert can be detected
by calling the method ResultSet.rowInserted.
boolean
isCatalogAtStart()
Retrieves whether a catalog appears at the start of a fully qualified
table name.
boolean
isReadOnly()
Retrieves whether this database is in read-only mode.
boolean
locatorsUpdateCopy()
Indicates whether updates made to a LOB are made on a copy or directly
to the LOB.
boolean
nullPlusNonNullIsNull()
Retrieves whether this database supports concatenations between
NULL and non-NULL values being
NULL.
boolean
nullsAreSortedAtEnd()
Retrieves whether NULL values are sorted at the end regardless of
sort order.
boolean
nullsAreSortedAtStart()
Retrieves whether NULL values are sorted at the start regardless
of sort order.
ownDeletesAreVisible(int type)
Retrieves whether a result set's own deletes are visible.
boolean
ownInsertsAreVisible(int type)
Retrieves whether a result set's own inserts are visible.
boolean
ownUpdatesAreVisible(int type)
Retrieves whether for the given type of ResultSet object,
the result set's own updates are visible.
boolean
storesLowerCaseIdentifiers()
Retrieves whether this database treats mixed case unquoted SQL identifiers as
case insensitive and stores them in lower case.
boolean
storesLowerCaseQuotedIdentifiers()
Retrieves whether this database treats mixed case quoted SQL identifiers as
case insensitive and stores them in lower case.
boolean
storesMixedCaseIdentifiers()
Retrieves whether this database treats mixed case unquoted SQL identifiers as
case insensitive and stores them in mixed case.
boolean
storesMixedCaseQuotedIdentifiers()
Retrieves whether this database treats mixed case quoted SQL identifiers as
case insensitive and stores them in mixed case.
boolean
storesUpperCaseIdentifiers()
Retrieves whether this database treats mixed case unquoted SQL identifiers as
case insensitive and stores them in upper case.
boolean
storesUpperCaseQuotedIdentifiers()
Retrieves whether this database treats mixed case quoted SQL identifiers as
case insensitive and stores them in upper case.
supportsConvert()
Retrieves whether this database supports the JDBC scalar function
CONVERT for the conversion of one JDBC type to another.
boolean
supportsConvert(int fromType,
int toType)
Retrieves whether this database supports the JDBC scalar function
CONVERT for conversions between the JDBC types fromType
and toType.
boolean
supportsCoreSQLGrammar()
Retrieves whether this database supports the ODBC Core SQL grammar.
supportsDifferentTableCorrelationNames()
Retrieves whether, when table correlation names are supported, they
are restricted to being different from the names of the tables.
supportsFullOuterJoins()
Retrieves whether this database supports full nested outer joins.
boolean
supportsGetGeneratedKeys()
Retrieves whether auto-generated keys can be retrieved after
a statement has been executed
boolean
supportsGroupBy()
Retrieves whether this database supports some form of
GROUP BY clause.
boolean
supportsGroupByBeyondSelect()
Retrieves whether this database supports using columns not included in
the SELECT statement in a GROUP BY clause
provided that all of the columns in the SELECT statement
are included in the GROUP BY clause.
boolean
supportsGroupByUnrelated()
Retrieves whether this database supports using a column that is
not in the SELECT statement in a
GROUP BY clause.
supportsMixedCaseIdentifiers()
Retrieves whether this database treats mixed case unquoted SQL identifiers as
case sensitive and as a result stores them in mixed case.
boolean
supportsMixedCaseQuotedIdentifiers()
Retrieves whether this database treats mixed case quoted SQL identifiers as
case sensitive and as a result stores them in mixed case.
boolean
supportsMultipleOpenResults()
Retrieves whether it is possible to have multiple ResultSet objects
returned from a CallableStatement object
simultaneously.
boolean
supportsMultipleResultSets()
Retrieves whether this database supports getting multiple
ResultSet objects from a single call to the
method execute.
boolean
supportsMultipleTransactions()
Retrieves whether this database allows having multiple
transactions open at once (on different connections).
boolean
supportsNamedParameters()
Retrieves whether this database supports named parameters to callable
statements.
supportsOrderByUnrelated()
Retrieves whether this database supports using a column that is
not in the SELECT statement in an
ORDER BY clause.
boolean
supportsOuterJoins()
Retrieves whether this database supports some form of outer join.
boolean
supportsPositionedDelete()
Retrieves whether this database supports positioned DELETE
statements.
boolean
supportsPositionedUpdate()
Retrieves whether this database supports positioned UPDATE
statements.
boolean
supportsResultSetConcurrency(int type,
int concurrency)
Retrieves whether this database supports the given concurrency type
in combination with the given result set type.
boolean
supportsResultSetHoldability(int holdability)
Retrieves whether this database supports the given result set holdability.
boolean
supportsResultSetType(int type)
Retrieves whether this database supports the given result set type.
boolean
supportsSavepoints()
Retrieves whether this database supports savepoints.
supportsStoredFunctionsUsingCallSyntax()
Retrieves whether this database supports invoking user-defined or vendor functions
using the stored procedure escape syntax.
boolean
supportsStoredProcedures()
Retrieves whether this database supports stored procedure calls
that use the stored procedure escape syntax.
For the column UPDATE_RULE,
indicates that
when the primary key is updated, the foreign key (imported key)
is changed to agree with it.
For the column DELETE_RULE,
it indicates that
when the primary key is deleted, rows that imported that key
are deleted.
A possible value for the columns UPDATE_RULE
and DELETE_RULE in the
ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
For the column UPDATE_RULE, indicates that
a primary key may not be updated if it has been imported by
another table as a foreign key.
For the column DELETE_RULE, indicates that
a primary key may not be deleted if it has been imported by
another table as a foreign key.
A possible value for the columns UPDATE_RULE
and DELETE_RULE in the
ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
For the columns UPDATE_RULE
and DELETE_RULE, indicates that
when the primary key is updated or deleted, the foreign key (imported key)
is changed to NULL.
A possible value for the columns UPDATE_RULE
and DELETE_RULE in the
ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
For the columns UPDATE_RULE
and DELETE_RULE, indicates that
if the primary key has been imported, it cannot be updated or deleted.
A possible value for the columns UPDATE_RULE
and DELETE_RULE in the
ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
For the columns UPDATE_RULE
and DELETE_RULE, indicates that
if the primary key is updated or deleted, the foreign key (imported key)
is set to the default value.
A possible value for the columns UPDATE_RULE
and DELETE_RULE in the
ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
Indicates deferrability. See SQL-92 for a definition.
A possible value for the column DEFERRABILITY
in the ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
Indicates deferrability. See SQL-92 for a definition.
A possible value for the column DEFERRABILITY
in the ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
Indicates deferrability. See SQL-92 for a definition.
A possible value for the column DEFERRABILITY
in the ResultSet objects returned by the methods
getImportedKeys, getExportedKeys,
and getCrossReference.
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an
X/Open (now know as Open Group) SQL CLI SQLSTATE value.
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an SQLSTATE value.
A possible return value for the method
DatabaseMetaData.getSQLStateType which is used to indicate
whether the value returned by the method
SQLException.getSQLState is an SQL99 SQLSTATE value.
Note:This constant remains only for compatibility reasons. Developers
should use the constant sqlStateSQL instead.
Retrieves whether NULL values are sorted high.
Sorted high means that NULL values
sort higher than any other value in a domain. In an ascending order,
if this method returns true, NULL values
will appear at the end. By contrast, the method
nullsAreSortedAtEnd indicates whether NULL values
are sorted at the end regardless of sort order.
Retrieves whether NULL values are sorted low.
Sorted low means that NULL values
sort lower than any other value in a domain. In an ascending order,
if this method returns true, NULL values
will appear at the beginning. By contrast, the method
nullsAreSortedAtStart indicates whether NULL values
are sorted at the beginning regardless of sort order.
Retrieves a comma-separated list of math functions available with
this database. These are the Open /Open CLI math function names used in
the JDBC function escape clause.
Returns:
the list of math functions supported by this database
Retrieves a comma-separated list of string functions available with
this database. These are the Open Group CLI string function names used
in the JDBC function escape clause.
Returns:
the list of string functions supported by this database
Retrieves a comma-separated list of system functions available with
this database. These are the Open Group CLI system function names used
in the JDBC function escape clause.
Returns:
a list of system functions supported by this database
Retrieves the string that can be used to escape wildcard characters.
This is the string that can be used to escape '_' or '%' in
the catalog search parameters that are a pattern (and therefore use one
of the wildcard characters).
The '_' character represents any single character;
the '%' character represents any sequence of zero or
more characters.
Retrieves whether this database supports the JDBC scalar function
CONVERT for the conversion of one JDBC type to another.
The JDBC types are the generic SQL data types defined
in java.sql.Types.
boolean supportsConvert(int fromType,
int toType)
throws SQLException
Retrieves whether this database supports the JDBC scalar function
CONVERT for conversions between the JDBC types fromType
and toType. The JDBC types are the generic SQL data types defined
in java.sql.Types.
Parameters:
fromType - the type to convert from; one of the type codes from
the class java.sql.Types
toType - the type to convert to; one of the type codes from
the class java.sql.Types
Retrieves whether this database supports using columns not included in
the SELECT statement in a GROUP BY clause
provided that all of the columns in the SELECT statement
are included in the GROUP BY clause.
Retrieves the maximum number of bytes this database allows for an
index, including all of the parts of the index.
Returns:
the maximum number of bytes allowed; this limit includes the
composite of all the constituent parts of the index;
a result of zero means that there is no limit or the limit
is not known
Retrieves a description of the stored procedures available in the given
catalog.
Only procedure descriptions matching the schema and
procedure name criteria are returned. They are ordered by
PROCEDURE_CAT, PROCEDURE_SCHEM,
PROCEDURE_NAME and SPECIFIC_ NAME.
Each procedure description has the the following columns:
PROCEDURE_CAT String => procedure catalog (may be null)
PROCEDURE_SCHEM String => procedure schema (may be null)
PROCEDURE_NAME String => procedure name
reserved for future use
reserved for future use
reserved for future use
REMARKS String => explanatory comment on the procedure
PROCEDURE_TYPE short => kind of procedure:
procedureResultUnknown - Cannot determine if a return value
will be returned
procedureNoResult - Does not return a return value
procedureReturnsResult - Returns a return value
SPECIFIC_NAME String => The name which uniquely identifies this
procedure within its schema.
A user may not have permissions to execute any of the procedures that are
returned by getProcedures
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
procedureNamePattern - a procedure name pattern; must match the
procedure name as it is stored in the database
Retrieves a description of the given catalog's stored procedure parameter
and result columns.
Only descriptions matching the schema, procedure and
parameter name criteria are returned. They are ordered by
PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME and SPECIFIC_NAME. Within this, the return value,
if any, is first. Next are the parameter descriptions in call
order. The column descriptions follow in column number order.
Each row in the ResultSet is a parameter description or
column description with the following fields:
PROCEDURE_CAT String => procedure catalog (may be null)
PROCEDURE_SCHEM String => procedure schema (may be null)
PROCEDURE_NAME String => procedure name
COLUMN_NAME String => column/parameter name
COLUMN_TYPE Short => kind of column/parameter:
procedureColumnUnknown - nobody knows
procedureColumnIn - IN parameter
procedureColumnInOut - INOUT parameter
procedureColumnOut - OUT parameter
procedureColumnReturn - procedure return value
procedureColumnResult - result column in ResultSet
DATA_TYPE int => SQL type from java.sql.Types
TYPE_NAME String => SQL type name, for a UDT type the
type name is fully qualified
PRECISION int => precision
LENGTH int => length in bytes of data
SCALE short => scale - null is returned for data types where
SCALE is not applicable.
COLUMN_DEF String => default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be null)
The string NULL (not enclosed in quotes) - if NULL was specified as the default value
TRUNCATE (not enclosed in quotes) - if the specified default value cannot be represented without truncation
NULL - if a default value was not specified
SQL_DATA_TYPE int => reserved for future use
SQL_DATETIME_SUB int => reserved for future use
CHAR_OCTET_LENGTH int => the maximum length of binary and character based columns. For any other datatype the returned value is a
NULL
ORDINAL_POSITION int => the ordinal position, starting from 1, for the input and output parameters for a procedure. A value of 0
is returned if this row describes the procedure's return value. For result set columns, it is the
ordinal position of the column in the result set starting from 1. If there are
multiple result sets, the column ordinal positions are implementation
defined.
IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
YES --- if the parameter can include NULLs
NO --- if the parameter cannot include NULLs
empty string --- if the nullability for the
parameter is unknown
SPECIFIC_NAME String => the name which uniquely identifies this procedure within its schema.
Note: Some databases may not return the column
descriptions for a procedure.
The PRECISION column represents the specified column size for the given column.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
procedureNamePattern - a procedure name pattern; must match the
procedure name as it is stored in the database
columnNamePattern - a column name pattern; must match the column name
as it is stored in the database
Returns:
ResultSet - each row describes a stored procedure parameter or
column
Retrieves a description of the tables available in the given catalog.
Only table descriptions matching the catalog, schema, table
name and type criteria are returned. They are ordered by
TABLE_TYPE, TABLE_CAT,
TABLE_SCHEM and TABLE_NAME.
REMARKS String => explanatory comment on the table
TYPE_CAT String => the types catalog (may be null)
TYPE_SCHEM String => the types schema (may be null)
TYPE_NAME String => type name (may be null)
SELF_REFERENCING_COL_NAME String => name of the designated
"identifier" column of a typed table (may be null)
REF_GENERATION String => specifies how values in
SELF_REFERENCING_COL_NAME are created. Values are
"SYSTEM", "USER", "DERIVED". (may be null)
Note: Some databases may not return information for
all tables.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
tableNamePattern - a table name pattern; must match the
table name as it is stored in the database
types - a list of table types, which must be from the list of table types
returned from getTableTypes(),to include; null returns
all types
Retrieves a description of table columns available in
the specified catalog.
Only column descriptions matching the catalog, schema, table
and column name criteria are returned. They are ordered by
TABLE_CAT,TABLE_SCHEM,
TABLE_NAME, and ORDINAL_POSITION.
Each column description has the following columns:
TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
COLUMN_NAME String => column name
DATA_TYPE int => SQL type from java.sql.Types
TYPE_NAME String => Data source dependent type name,
for a UDT the type name is fully qualified
COLUMN_SIZE int => column size.
BUFFER_LENGTH is not used.
DECIMAL_DIGITS int => the number of fractional digits. Null is returned for data types where
DECIMAL_DIGITS is not applicable.
NUM_PREC_RADIX int => Radix (typically either 10 or 2)
NULLABLE int => is NULL allowed.
columnNoNulls - might not allow NULL values
columnNullable - definitely allows NULL values
columnNullableUnknown - nullability unknown
REMARKS String => comment describing column (may be null)
COLUMN_DEF String => default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be null)
SQL_DATA_TYPE int => unused
SQL_DATETIME_SUB int => unused
CHAR_OCTET_LENGTH int => for char types the
maximum number of bytes in the column
ORDINAL_POSITION int => index of column in table
(starting at 1)
IS_NULLABLE String => ISO rules are used to determine the nullability for a column.
YES --- if the parameter can include NULLs
NO --- if the parameter cannot include NULLs
empty string --- if the nullability for the
parameter is unknown
SCOPE_CATLOG String => catalog of table that is the scope
of a reference attribute (null if DATA_TYPE isn't REF)
SCOPE_SCHEMA String => schema of table that is the scope
of a reference attribute (null if the DATA_TYPE isn't REF)
SCOPE_TABLE String => table name that this the scope
of a reference attribure (null if the DATA_TYPE isn't REF)
SOURCE_DATA_TYPE short => source type of a distinct type or user-generated
Ref type, SQL type from java.sql.Types (null if DATA_TYPE
isn't DISTINCT or user-generated REF)
IS_AUTOINCREMENT String => Indicates whether this column is auto incremented
YES --- if the column is auto incremented
NO --- if the column is not auto incremented
empty string --- if it cannot be determined whether the column is auto incremented
parameter is unknown
The COLUMN_SIZE column the specified column size for the given column.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
tableNamePattern - a table name pattern; must match the
table name as it is stored in the database
columnNamePattern - a column name pattern; must match the column
name as it is stored in the database
Retrieves a description of the access rights for a table's columns.
Only privileges matching the column name criteria are
returned. They are ordered by COLUMN_NAME and PRIVILEGE.
Each privilige description has the following columns:
TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
COLUMN_NAME String => column name
GRANTOR String => grantor of access (may be null)
GRANTEE String => grantee of access
PRIVILEGE String => name of access (SELECT,
INSERT, UPDATE, REFRENCES, ...)
IS_GRANTABLE String => "YES" if grantee is permitted
to grant to others; "NO" if not; null if unknown
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name as it is
stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is
stored in the database
columnNamePattern - a column name pattern; must match the column
name as it is stored in the database
Returns:
ResultSet - each row is a column privilege description
Retrieves a description of the access rights for each table available
in a catalog. Note that a table privilege applies to one or
more columns in the table. It would be wrong to assume that
this privilege applies to all columns (this may be true for
some systems but is not true for all.)
Only privileges matching the schema and table name
criteria are returned. They are ordered by
TABLE_CAT,
TABLE_SCHEM, TABLE_NAME,
and PRIVILEGE.
Each privilige description has the following columns:
TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
GRANTOR String => grantor of access (may be null)
GRANTEE String => grantee of access
PRIVILEGE String => name of access (SELECT,
INSERT, UPDATE, REFRENCES, ...)
IS_GRANTABLE String => "YES" if grantee is permitted
to grant to others; "NO" if not; null if unknown
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
tableNamePattern - a table name pattern; must match the
table name as it is stored in the database
Returns:
ResultSet - each row is a table privilege description
Retrieves a description of a table's optimal set of columns that
uniquely identifies a row. They are ordered by SCOPE.
Each column description has the following columns:
SCOPE short => actual scope of result
bestRowTemporary - very temporary, while using row
bestRowTransaction - valid for remainder of current transaction
bestRowSession - valid for remainder of current session
COLUMN_NAME String => column name
DATA_TYPE int => SQL data type from java.sql.Types
TYPE_NAME String => Data source dependent type name,
for a UDT the type name is fully qualified
COLUMN_SIZE int => precision
BUFFER_LENGTH int => not used
DECIMAL_DIGITS short => scale - Null is returned for data types where
DECIMAL_DIGITS is not applicable.
PSEUDO_COLUMN short => is this a pseudo column
like an Oracle ROWID
bestRowUnknown - may or may not be pseudo column
bestRowNotPseudo - is NOT a pseudo column
bestRowPseudo - is a pseudo column
The COLUMN_SIZE column represents the specified column size for the given column.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in the database
scope - the scope of interest; use same values as SCOPE
Retrieves a description of a table's columns that are automatically
updated when any value in a row is updated. They are
unordered.
Each column description has the following columns:
SCOPE short => is not used
COLUMN_NAME String => column name
DATA_TYPE int => SQL data type from java.sql.Types
TYPE_NAME String => Data source-dependent type name
COLUMN_SIZE int => precision
BUFFER_LENGTH int => length of column value in bytes
DECIMAL_DIGITS short => scale - Null is returned for data types where
DECIMAL_DIGITS is not applicable.
PSEUDO_COLUMN short => whether this is pseudo column
like an Oracle ROWID
versionColumnUnknown - may or may not be pseudo column
versionColumnNotPseudo - is NOT a pseudo column
versionColumnPseudo - is a pseudo column
The COLUMN_SIZE column represents the specified column size for the given column.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in the database
Returns:
a ResultSet object in which each row is a
column description
Retrieves a description of the given table's primary key columns. They
are ordered by COLUMN_NAME.
Each primary key column description has the following columns:
TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
COLUMN_NAME String => column name
KEY_SEQ short => sequence number within primary key( a value
of 1 represents the first column of the primary key, a value of 2 would
represent the second column within the primary key).
PK_NAME String => primary key name (may be null)
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in the database
Returns:
ResultSet - each row is a primary key column description
Retrieves a description of the primary key columns that are
referenced by the given table's foreign key columns (the primary keys
imported by a table). They are ordered by PKTABLE_CAT,
PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
Each primary key column description has the following columns:
PKTABLE_CAT String => primary key table catalog
being imported (may be null)
PKTABLE_SCHEM String => primary key table schema
being imported (may be null)
PKTABLE_NAME String => primary key table name
being imported
PKCOLUMN_NAME String => primary key column name
being imported
FKTABLE_CAT String => foreign key table catalog (may be null)
FKTABLE_SCHEM String => foreign key table schema (may be null)
FKTABLE_NAME String => foreign key table name
FKCOLUMN_NAME String => foreign key column name
KEY_SEQ short => sequence number within a foreign key( a value
of 1 represents the first column of the foreign key, a value of 2 would
represent the second column within the foreign key).
UPDATE_RULE short => What happens to a
foreign key when the primary key is updated:
importedNoAction - do not allow update of primary
key if it has been imported
importedKeyCascade - change imported key to agree
with primary key update
importedKeySetNull - change imported key to NULL
if its primary key has been updated
importedKeySetDefault - change imported key to default values
if its primary key has been updated
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
DELETE_RULE short => What happens to
the foreign key when primary is deleted.
importedKeyNoAction - do not allow delete of primary
key if it has been imported
importedKeyCascade - delete rows that import a deleted key
importedKeySetNull - change imported key to NULL if
its primary key has been deleted
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
importedKeySetDefault - change imported key to default if
its primary key has been deleted
FK_NAME String => foreign key name (may be null)
PK_NAME String => primary key name (may be null)
DEFERRABILITY short => can the evaluation of foreign key
constraints be deferred until commit
importedKeyInitiallyDeferred - see SQL92 for definition
importedKeyInitiallyImmediate - see SQL92 for definition
importedKeyNotDeferrable - see SQL92 for definition
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in the database
Returns:
ResultSet - each row is a primary key column description
Retrieves a description of the foreign key columns that reference the
given table's primary key columns (the foreign keys exported by a
table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
FKTABLE_NAME, and KEY_SEQ.
Each foreign key column description has the following columns:
PKTABLE_CAT String => primary key table catalog (may be null)
PKTABLE_SCHEM String => primary key table schema (may be null)
PKTABLE_NAME String => primary key table name
PKCOLUMN_NAME String => primary key column name
FKTABLE_CAT String => foreign key table catalog (may be null)
being exported (may be null)
FKTABLE_SCHEM String => foreign key table schema (may be null)
being exported (may be null)
FKTABLE_NAME String => foreign key table name
being exported
FKCOLUMN_NAME String => foreign key column name
being exported
KEY_SEQ short => sequence number within foreign key( a value
of 1 represents the first column of the foreign key, a value of 2 would
represent the second column within the foreign key).
UPDATE_RULE short => What happens to
foreign key when primary is updated:
importedNoAction - do not allow update of primary
key if it has been imported
importedKeyCascade - change imported key to agree
with primary key update
importedKeySetNull - change imported key to NULL if
its primary key has been updated
importedKeySetDefault - change imported key to default values
if its primary key has been updated
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
DELETE_RULE short => What happens to
the foreign key when primary is deleted.
importedKeyNoAction - do not allow delete of primary
key if it has been imported
importedKeyCascade - delete rows that import a deleted key
importedKeySetNull - change imported key to NULL if
its primary key has been deleted
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
importedKeySetDefault - change imported key to default if
its primary key has been deleted
FK_NAME String => foreign key name (may be null)
PK_NAME String => primary key name (may be null)
DEFERRABILITY short => can the evaluation of foreign key
constraints be deferred until commit
importedKeyInitiallyDeferred - see SQL92 for definition
importedKeyInitiallyImmediate - see SQL92 for definition
importedKeyNotDeferrable - see SQL92 for definition
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in this database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in this database
Returns:
a ResultSet object in which each row is a
foreign key column description
Retrieves a description of the foreign key columns in the given foreign key
table that reference the primary key or the columns representing a unique constraint of the parent table (could be the same or a different table).
The number of columns returned from the parent table must match the number of
columns that make up the foreign key. They
are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
KEY_SEQ.
Each foreign key column description has the following columns:
PKTABLE_CAT String => parent key table catalog (may be null)
PKTABLE_SCHEM String => parent key table schema (may be null)
PKTABLE_NAME String => parent key table name
PKCOLUMN_NAME String => parent key column name
FKTABLE_CAT String => foreign key table catalog (may be null)
being exported (may be null)
FKTABLE_SCHEM String => foreign key table schema (may be null)
being exported (may be null)
FKTABLE_NAME String => foreign key table name
being exported
FKCOLUMN_NAME String => foreign key column name
being exported
KEY_SEQ short => sequence number within foreign key( a value
of 1 represents the first column of the foreign key, a value of 2 would
represent the second column within the foreign key).
UPDATE_RULE short => What happens to
foreign key when parent key is updated:
importedNoAction - do not allow update of parent
key if it has been imported
importedKeyCascade - change imported key to agree
with parent key update
importedKeySetNull - change imported key to NULL if
its parent key has been updated
importedKeySetDefault - change imported key to default values
if its parent key has been updated
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
DELETE_RULE short => What happens to
the foreign key when parent key is deleted.
importedKeyNoAction - do not allow delete of parent
key if it has been imported
importedKeyCascade - delete rows that import a deleted key
importedKeySetNull - change imported key to NULL if
its primary key has been deleted
importedKeyRestrict - same as importedKeyNoAction
(for ODBC 2.x compatibility)
importedKeySetDefault - change imported key to default if
its parent key has been deleted
FK_NAME String => foreign key name (may be null)
PK_NAME String => parent key name (may be null)
DEFERRABILITY short => can the evaluation of foreign key
constraints be deferred until commit
importedKeyInitiallyDeferred - see SQL92 for definition
importedKeyInitiallyImmediate - see SQL92 for definition
importedKeyNotDeferrable - see SQL92 for definition
Parameters:
parentCatalog - a catalog name; must match the catalog name
as it is stored in the database; "" retrieves those without a
catalog; null means drop catalog name from the selection criteria
parentSchema - a schema name; must match the schema name as
it is stored in the database; "" retrieves those without a schema;
null means drop schema name from the selection criteria
parentTable - the name of the table that exports the key; must match
the table name as it is stored in the database
foreignCatalog - a catalog name; must match the catalog name as
it is stored in the database; "" retrieves those without a
catalog; null means drop catalog name from the selection criteria
foreignSchema - a schema name; must match the schema name as it
is stored in the database; "" retrieves those without a schema;
null means drop schema name from the selection criteria
foreignTable - the name of the table that imports the key; must match
the table name as it is stored in the database
Returns:
ResultSet - each row is a foreign key column description
Retrieves a description of all the data types supported by
this database. They are ordered by DATA_TYPE and then by how
closely the data type maps to the corresponding JDBC SQL type.
If the database supports SQL distinct types, then getTypeInfo() will return
a single row with a TYPE_NAME of DISTINCT and a DATA_TYPE of Types.DISTINCT.
If the database supports SQL structured types, then getTypeInfo() will return
a single row with a TYPE_NAME of STRUCT and a DATA_TYPE of Types.STRUCT.
If SQL distinct or structured types are supported, then information on the
individual types may be obtained from the getUDTs() method.
Each type description has the following columns:
TYPE_NAME String => Type name
DATA_TYPE int => SQL data type from java.sql.Types
PRECISION int => maximum precision
LITERAL_PREFIX String => prefix used to quote a literal
(may be null)
LITERAL_SUFFIX String => suffix used to quote a literal
(may be null)
CREATE_PARAMS String => parameters used in creating
the type (may be null)
NULLABLE short => can you use NULL for this type.
typeNoNulls - does not allow NULL values
typeNullable - allows NULL values
typeNullableUnknown - nullability unknown
CASE_SENSITIVE boolean=> is it case sensitive.
SEARCHABLE short => can you use "WHERE" based on this type:
typePredNone - No support
typePredChar - Only supported with WHERE .. LIKE
typePredBasic - Supported except for WHERE .. LIKE
typeSearchable - Supported for all WHERE ..
UNSIGNED_ATTRIBUTE boolean => is it unsigned.
FIXED_PREC_SCALE boolean => can it be a money value.
AUTO_INCREMENT boolean => can it be used for an
auto-increment value.
LOCAL_TYPE_NAME String => localized version of type name
(may be null)
MINIMUM_SCALE short => minimum scale supported
MAXIMUM_SCALE short => maximum scale supported
SQL_DATA_TYPE int => unused
SQL_DATETIME_SUB int => unused
NUM_PREC_RADIX int => usually 2 or 10
The PRECISION column represents the maximum column size that the server supports for the given datatype.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Returns:
a ResultSet object in which each row is an SQL
type description
Retrieves a description of the given table's indices and statistics. They are
ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
Each index column description has the following columns:
TABLE_CAT String => table catalog (may be null)
TABLE_SCHEM String => table schema (may be null)
TABLE_NAME String => table name
NON_UNIQUE boolean => Can index values be non-unique.
false when TYPE is tableIndexStatistic
INDEX_QUALIFIER String => index catalog (may be null);
null when TYPE is tableIndexStatistic
INDEX_NAME String => index name; null when TYPE is
tableIndexStatistic
TYPE short => index type:
tableIndexStatistic - this identifies table statistics that are
returned in conjuction with a table's index descriptions
tableIndexClustered - this is a clustered index
tableIndexHashed - this is a hashed index
tableIndexOther - this is some other style of index
ORDINAL_POSITION short => column sequence number
within index; zero when TYPE is tableIndexStatistic
COLUMN_NAME String => column name; null when TYPE is
tableIndexStatistic
ASC_OR_DESC String => column sort sequence, "A" => ascending,
"D" => descending, may be null if sort sequence is not supported;
null when TYPE is tableIndexStatistic
CARDINALITY int => When TYPE is tableIndexStatistic, then
this is the number of rows in the table; otherwise, it is the
number of unique values in the index.
PAGES int => When TYPE is tableIndexStatisic then
this is the number of pages used for the table, otherwise it
is the number of pages used for the current index.
FILTER_CONDITION String => Filter condition, if any.
(may be null)
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in this database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schema - a schema name; must match the schema name
as it is stored in this database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
table - a table name; must match the table name as it is stored
in this database
unique - when true, return only indices for unique values;
when false, return indices regardless of whether unique or not
approximate - when true, result is allowed to reflect approximate
or out of data values; when false, results are requested to be
accurate
Returns:
ResultSet - each row is an index column description
Retrieves whether or not a visible row delete can be detected by
calling the method ResultSet.rowDeleted. If the method
deletesAreDetected returns false, it means that
deleted rows are removed from the result set.
Parameters:
type - the ResultSet type; one of
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.TYPE_SCROLL_INSENSITIVE, or
ResultSet.TYPE_SCROLL_SENSITIVE
Returns:
true if deletes are detected by the given result set type;
false otherwise
Retrieves a description of the user-defined types (UDTs) defined
in a particular schema. Schema-specific UDTs may have type
JAVA_OBJECT, STRUCT,
or DISTINCT.
Only types matching the catalog, schema, type name and type
criteria are returned. They are ordered by DATA_TYPE,
TYPE_CAT, TYPE_SCHEM and
TYPE_NAME. The type name parameter may be a fully-qualified
name. In this case, the catalog and schemaPattern parameters are
ignored.
Each type description has the following columns:
TYPE_CAT String => the type's catalog (may be null)
TYPE_SCHEM String => type's schema (may be null)
TYPE_NAME String => type name
CLASS_NAME String => Java class name
DATA_TYPE int => type value defined in java.sql.Types.
One of JAVA_OBJECT, STRUCT, or DISTINCT
REMARKS String => explanatory comment on the type
BASE_TYPE short => type code of the source type of a
DISTINCT type or the type that implements the user-generated
reference type of the SELF_REFERENCING_COLUMN of a structured
type as defined in java.sql.Types (null if DATA_TYPE is not
DISTINCT or not STRUCT with REFERENCE_GENERATION = USER_DEFINED)
Note: If the driver does not support UDTs, an empty
result set is returned.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema pattern name; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
typeNamePattern - a type name pattern; must match the type name
as it is stored in the database; may be a fully qualified name
types - a list of user-defined types (JAVA_OBJECT,
STRUCT, or DISTINCT) to include; null returns all types
Returns:
ResultSet object in which each row describes a UDT
Retrieves a description of the user-defined type (UDT) hierarchies defined in a
particular schema in this database. Only the immediate super type/
sub type relationship is modeled.
Only supertype information for UDTs matching the catalog,
schema, and type name is returned. The type name parameter
may be a fully-qualified name. When the UDT name supplied is a
fully-qualified name, the catalog and schemaPattern parameters are
ignored.
If a UDT does not have a direct super type, it is not listed here.
A row of the ResultSet object returned by this method
describes the designated UDT and a direct supertype. A row has the following
columns:
TYPE_CAT String => the UDT's catalog (may be null)
TYPE_SCHEM String => UDT's schema (may be null)
TYPE_NAME String => type name of the UDT
SUPERTYPE_CAT String => the direct super type's catalog
(may be null)
SUPERTYPE_SCHEM String => the direct super type's schema
(may be null)
SUPERTYPE_NAME String => the direct super type's name
Note: If the driver does not support type hierarchies, an
empty result set is returned.
Parameters:
catalog - a catalog name; "" retrieves those without a catalog;
null means drop catalog name from the selection criteria
schemaPattern - a schema name pattern; "" retrieves those
without a schema
typeNamePattern - a UDT name pattern; may be a fully-qualified
name
Returns:
a ResultSet object in which a row gives information
about the designated UDT
Retrieves a description of the table hierarchies defined in a particular
schema in this database.
Only supertable information for tables matching the catalog, schema
and table name are returned. The table name parameter may be a fully-
qualified name, in which case, the catalog and schemaPattern parameters
are ignored. If a table does not have a super table, it is not listed here.
Supertables have to be defined in the same catalog and schema as the
sub tables. Therefore, the type description does not need to include
this information for the supertable.
Each type description has the following columns:
TABLE_CAT String => the type's catalog (may be null)
TABLE_SCHEM String => type's schema (may be null)
TABLE_NAME String => type name
SUPERTABLE_NAME String => the direct super type's name
Note: If the driver does not support type hierarchies, an
empty result set is returned.
Parameters:
catalog - a catalog name; "" retrieves those without a catalog;
null means drop catalog name from the selection criteria
schemaPattern - a schema name pattern; "" retrieves those
without a schema
tableNamePattern - a table name pattern; may be a fully-qualified
name
Returns:
a ResultSet object in which each row is a type description
Retrieves a description of the given attribute of the given type
for a user-defined type (UDT) that is available in the given schema
and catalog.
Descriptions are returned only for attributes of UDTs matching the
catalog, schema, type, and attribute name criteria. They are ordered by
TYPE_CAT, TYPE_SCHEM,
TYPE_NAME and ORDINAL_POSITION. This description
does not contain inherited attributes.
The ResultSet object that is returned has the following
columns:
TYPE_CAT String => type catalog (may be null)
TYPE_SCHEM String => type schema (may be null)
TYPE_NAME String => type name
ATTR_NAME String => attribute name
DATA_TYPE int => attribute type SQL type from java.sql.Types
ATTR_TYPE_NAME String => Data source dependent type name.
For a UDT, the type name is fully qualified. For a REF, the type name is
fully qualified and represents the target type of the reference type.
ATTR_SIZE int => column size. For char or date
types this is the maximum number of characters; for numeric or
decimal types this is precision.
DECIMAL_DIGITS int => the number of fractional digits. Null is returned for data types where
DECIMAL_DIGITS is not applicable.
NUM_PREC_RADIX int => Radix (typically either 10 or 2)
NULLABLE int => whether NULL is allowed
attributeNoNulls - might not allow NULL values
attributeNullable - definitely allows NULL values
attributeNullableUnknown - nullability unknown
REMARKS String => comment describing column (may be null)
ATTR_DEF String => default value (may be null)
SQL_DATA_TYPE int => unused
SQL_DATETIME_SUB int => unused
CHAR_OCTET_LENGTH int => for char types the
maximum number of bytes in the column
ORDINAL_POSITION int => index of the attribute in the UDT
(starting at 1)
IS_NULLABLE String => ISO rules are used to determine
the nullability for a attribute.
YES --- if the attribute can include NULLs
NO --- if the attribute cannot include NULLs
empty string --- if the nullability for the
attribute is unknown
SCOPE_CATALOG String => catalog of table that is the
scope of a reference attribute (null if DATA_TYPE isn't REF)
SCOPE_SCHEMA String => schema of table that is the
scope of a reference attribute (null if DATA_TYPE isn't REF)
SCOPE_TABLE String => table name that is the scope of a
reference attribute (null if the DATA_TYPE isn't REF)
SOURCE_DATA_TYPE short => source type of a distinct type or user-generated
Ref type,SQL type from java.sql.Types (null if DATA_TYPE
isn't DISTINCT or user-generated REF)
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
typeNamePattern - a type name pattern; must match the
type name as it is stored in the database
attributeNamePattern - an attribute name pattern; must match the attribute
name as it is declared in the database
Returns:
a ResultSet object in which each row is an
attribute description
Retrieves the schema names available in this database. The results
are ordered by TABLE_CATALOG and
TABLE_SCHEM.
The schema columns are:
TABLE_SCHEM String => schema name
TABLE_CATALOG String => catalog name (may be null)
Parameters:
catalog - a catalog name; must match the catalog name as it is stored
in the database;"" retrieves those without a catalog; null means catalog
name should not be used to narrow down the search.
schemaPattern - a schema name; must match the schema name as it is
stored in the database; null means
schema name should not be used to narrow down the search.
Returns:
a ResultSet object in which each row is a
schema description
Retrieves whether a SQLException while autoCommit is true inidcates
that all open ResultSets are closed, even ones that are holdable. When a SQLException occurs while
autocommit is true, it is vendor specific whether the JDBC driver responds with a commit operation, a
rollback operation, or by doing neither a commit nor a rollback. A potential result of this difference
is in whether or not holdable ResultSets are closed.
Retrieves a description of the system and user functions available
in the given catalog.
Only system and user function descriptions matching the schema and
function name criteria are returned. They are ordered by
FUNCTION_CAT, FUNCTION_SCHEM,
FUNCTION_NAME and
SPECIFIC_ NAME.
Each function description has the the following columns:
FUNCTION_CAT String => function catalog (may be null)
FUNCTION_SCHEM String => function schema (may be null)
FUNCTION_NAME String => function name. This is the name
used to invoke the function
REMARKS String => explanatory comment on the function
FUNCTION_TYPE short => kind of function:
functionResultUnknown - Cannot determine if a return value
or table will be returned
functionNoTable- Does not return a table
functionReturnsTable - Returns a table
SPECIFIC_NAME String => the name which uniquely identifies
this function within its schema. This is a user specified, or DBMS
generated, name that may be different then the FUNCTION_NAME
for example with overload functions
A user may not have permission to execute any of the functions that are
returned by getFunctions
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
functionNamePattern - a function name pattern; must match the
function name as it is stored in the database
Retrieves a description of the given catalog's system or user
function parameters and return type.
Only descriptions matching the schema, function and
parameter name criteria are returned. They are ordered by
FUNCTION_CAT, FUNCTION_SCHEM,
FUNCTION_NAME and
SPECIFIC_ NAME. Within this, the return value,
if any, is first. Next are the parameter descriptions in call
order. The column descriptions follow in column number order.
Each row in the ResultSet
is a parameter description, column description or
return type description with the following fields:
FUNCTION_CAT String => function catalog (may be null)
FUNCTION_SCHEM String => function schema (may be null)
FUNCTION_NAME String => function name. This is the name
used to invoke the function
COLUMN_NAME String => column/parameter name
COLUMN_TYPE Short => kind of column/parameter:
functionColumnUnknown - nobody knows
functionColumnIn - IN parameter
functionColumnInOut - INOUT parameter
functionColumnOut - OUT parameter
functionColumnReturn - function return value
functionColumnResult - Indicates that the parameter or column
is a column in the ResultSet
DATA_TYPE int => SQL type from java.sql.Types
TYPE_NAME String => SQL type name, for a UDT type the
type name is fully qualified
PRECISION int => precision
LENGTH int => length in bytes of data
SCALE short => scale - null is returned for data types where
SCALE is not applicable.
CHAR_OCTET_LENGTH int => the maximum length of binary
and character based parameters or columns. For any other datatype the returned value
is a NULL
ORDINAL_POSITION int => the ordinal position, starting
from 1, for the input and output parameters. A value of 0
is returned if this row describes the function's return value.
For result set columns, it is the
ordinal position of the column in the result set starting from 1.
IS_NULLABLE String => ISO rules are used to determine
the nullability for a parameter or column.
YES --- if the parameter or column can include NULLs
NO --- if the parameter or column cannot include NULLs
empty string --- if the nullability for the
parameter or column is unknown
SPECIFIC_NAME String => the name which uniquely identifies
this function within its schema. This is a user specified, or DBMS
generated, name that may be different then the FUNCTION_NAME
for example with overload functions
The PRECISION column represents the specified column size for the given
parameter or column.
For numeric data, this is the maximum precision. For character data, this is the length in characters.
For datetime datatypes, this is the length in characters of the String representation (assuming the
maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
this is the length in bytes. Null is returned for data types where the
column size is not applicable.
Parameters:
catalog - a catalog name; must match the catalog name as it
is stored in the database; "" retrieves those without a catalog;
null means that the catalog name should not be used to narrow
the search
schemaPattern - a schema name pattern; must match the schema name
as it is stored in the database; "" retrieves those without a schema;
null means that the schema name should not be used to narrow
the search
functionNamePattern - a procedure name pattern; must match the
function name as it is stored in the database
columnNamePattern - a parameter name pattern; must match the
parameter or column name as it is stored in the database
Returns:
ResultSet - each row describes a
user function parameter, column or return type
Submit a bug or feature For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.