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 オブジェクトです。
例外
解説
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 のメンバー