次の方法で共有


getColumns メソッド (SQLServerDatabaseMetaData)

指定されたカタログで使用できるテーブル列の記述を取得します。

構文

public java.sql.ResultSet getColumns(java.lang.String catalog,
                                     java.lang.String schema,
                                     java.lang.String table,
                                     java.lang.String col)

パラメーター

catalog

カタログ名を含む String です。

schema

スキーマ名のパターンを含む String です。

table

テーブル名のパターンを含む String です。

col

列名のパターンを含む String です。

戻り値

SQLServerResultSet オブジェクトです。

例外

SQLServerException

解説

getColumns メソッドは、java.sql.DatabaseMetaData インターフェイスの getColumns メソッドで規定されています。

getColumns メソッドによって返される結果セットには、次の情報が含まれます。

名前 種類 説明

TABLE_CAT

String

カタログ名です。

TABLE_SCHEM

String

テーブル スキーマ名です。

TABLE_NAME

String

テーブル名です。

COLUMN_NAME

String

列名です。

DATA_TYPE

smallint

java.sql.Types の SQL データ型です。

TYPE_NAME

String

データ型の名前です。

COLUMN_SIZE

int

列の完全桁数です。

BUFFER_LENGTH

smallint

データの転送サイズです。

DECIMAL_DIGITS

smallint

列の小数点以下の桁数です。

NUM_PREC_RADIX

smallint

列の基数です。

NULLABLE

smallint

列が null を許容するかどうかを示します。次のいずれかの値になります。

columnNoNulls (0)

columnNullable (1)

解説

String

列に関連付けられているコメントです。

注意

SQL Server は、この列に対して常に "null" を返します。

COLUMN_DEF

String

列の既定値です。

SQL_DATA_TYPE

smallint

記述子の TYPE フィールドでの SQL データ型の値。datetime データ型と SQL-92 interval データ型以外は、DATA_TYPE 列と同じです。この列は常に値を返します。

SQL_DATETIME_SUB

smallint

datetime および SQL-92 interval データ型のサブタイプ コードです。他のデータ型の場合、この列は NULL を返します。

CHAR_OCTET_LENGTH

int

列の最大バイト数です。

ORDINAL_POSITION

int

テーブル内の列のインデックスです。

IS_NULLABLE

String

列で null 値が許容されるかどうかを示します。

SS_IS_SPARSE

smallint

列がスパース列の場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE になります。

SS_IS_COLUMN_SET

smallint

列がスパース column_set 列の場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE になります。

SS_IS_COMPUTED

smallint

TABLE_TYPE の列が計算列であるかどうかを示します。

IS_AUTOINCREMENT

String

列が自動インクリメントされる場合は "YES" です。列が自動インクリメントされない場合は "NO" です。列が自動インクリメントされるかどうかをドライバーが判断できない場合は "" (空の文字列) です。

SS_UDT_CATALOG_NAME

String

UDT (ユーザー定義型) を含むカタログの名前です。

SS_UDT_SCHEMA_NAME

String

UDT (ユーザー定義型) を含むスキーマの名前です。

SS_UDT_ASSEMBLY_TYPE_NAME

String

完全修飾名の UDT (ユーザー定義型) です。

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

String

XML スキーマ コレクション名が定義されているカタログの名前です。カタログ名が見つからない場合は、この変数に空文字列が含まれます。

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

String

XML スキーマ コレクション名が定義されているスキーマの名前です。スキーマ名が見つからない場合は、空文字列です。

SS_XML_SCHEMACOLLECTION_NAME

String

XML スキーマ コレクションの名前です。名前が見つからない場合は、空文字列です。

SS_DATA_TYPE

tinyint

拡張ストアド プロシージャによって使用される SQL Server データ型です。

   SQL Server によって返されるデータ型の詳細については、SQL Server オンライン ブックの「データ型 (Transact-SQL)」を参照してください。

注意

getColumns メソッドによって返されるデータの詳細については、SQL Server オンライン ブックの「sp_columns (Transact-SQL)」を参照してください。

Microsoft SQL Server JDBC Driver 3.0 では、次の動作が以前のバージョンの JDBC Driver から変更されています。

DATA_TYPE 列には、次の変更点があります。

SQL Server データ型 JDBC Driver 2.0 での戻り値の型と関連付けられている数値定数 JDBC Driver 3.0 での戻り値の型

8 KB を超えるユーザー定義型

LONGVARBINARY (-4)

VARBINARY (-3)

geography

LONGVARBINARY (-4)

VARBINARY (-3)

geometry

LONGVARBINARY (-4)

VARBINARY (-3)

varbinary(max)

LONGVARBINARY (-4)

VARBINARY (-3)

nvarchar(max)

LONGVARCHAR (-1) または LONGNVARCHAR (JDBC 4) (-16)

VARCHAR (12) または NVARCHAR (JDBC 4) (-9)

varchar(max)

LONGVARCHAR (-1)

VARCHAR (12)

time

VARCHAR (12) または NVARCHAR (JDBC 4) (-9)

TIME (-154)

date

VARCHAR (12) または NVARCHAR (JDBC 4) (-9)

DATE (91)

datetime2

VARCHAR (12) または NVARCHAR (JDBC 4) (-9)

TIMESTAMP (93)

datetimeoffset

VARCHAR (12) または NVARCHAR (JDBC 4) (-9)

microsoft.sql.Types.DATETIMEOFFSET (-155)

COLUMN_SIZE 列には、次の変更点があります。

SQL Server データ型 JDBC Driver 2.0 での戻り値の型 JDBC Driver 3.0 での戻り値の型

nvarchar(max)

1073741823

2147483647 (データベースのメタデータ)

xml

1073741823

2147483647 (データベースのメタデータ)

8 KB 以下のユーザー定義型

8 KB (結果セットとパラメーターのメタデータ)

ストアド プロシージャによって返される実際のサイズです。

time

この型の文字列表記の長さ (文字数) です (秒部分に許容される最大有効桁数を想定)。

date

time と同じです。

datetime2

time と同じです。

datetimeoffset

time と同じです。

BUFFER_LENGTH 列には、次の変更点があります。

SQL Server データ型 JDBC Driver 2.0 での戻り値の型 JDBC Driver 3.0 での戻り値の型

8 KB を超えるユーザー定義型

2147483647

TYPE_NAME 列には、次の変更点があります。

SQL Server データ型 JDBC Driver 2.0 での戻り値の型 JDBC Driver 3.0 での戻り値の型

varchar(max)

text

varchar

varbinary(max)

image

varbinary

DECIMAL_DIGITS 列には、次の変更点があります。

SQL Server の型 JDBC Driver 2.0 JDBC Driver 3.0

time

NULL

7 (または、指定した場合はそれより少なくなります)

date

NULL

NULL

datetime2

NULL

7 (または、指定した場合はそれより少なくなります)

datetimeoffset

NULL

7 (または、指定した場合はそれより少なくなります)

SQL_DATA_TYPE 列には、次の変更点があります。

SQL Server データ型 JDBC Driver 2.0 での SQL Server 2008 のデータ値 JDBC Driver 3.0 での SQL Server 2008 のデータ値

varchar(max)

-10

-9

nvarchar(max)

-1

-9

xml

-10

-152

8 KB 以下のユーザー定義型

-3

-151

8 KB を超えるユーザー定義型

JDBC Driver 2.0 では使用できません。

-151

geography

-4

-151

geometry

-4

-151

hierarchyid

-4

-151

time

-9

92

date

-9

91

datetime2

-9

93

datetimeoffset

-9

-155

次の例では、getColumns メソッドを使用して、SQL Server 2005 AdventureWorks サンプル データベースにある Person.Contact テーブルの FirstName 列の情報を返す方法を示します。

public static void executeGetColumns(Connection con) {
   try {
      DatabaseMetaData dbmd = con.getMetaData();
      ResultSet rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");
      ResultSetMetaData rsmd = rs.getMetaData();

      // Display the result set data.
      int cols = rsmd.getColumnCount();
      while(rs.next()) {
         for (int i = 1; i <= cols; i++) {
            System.out.println(rs.getString(i));
         }
      }
      rs.close();
   } 

   catch (Exception e) {
      e.printStackTrace();
   }
}

参照

リファレンス

SQLServerDatabaseMetaData クラス

概念

SQLServerDatabaseMetaData のメソッド
SQLServerDatabaseMetaData のメンバー