getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)

Syntax:

ResultSet getColumns(String catalog,
                     String schemaPattern,
                     String tableNamePattern,
                     String columnNamePattern)
                     throws SQLException

Description:

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:

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)
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

Returns:

ResultSet - each row is a column description

Throws:

SQLException - if a database access error occurs or the database metadata object is closed