Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


17.4.8 ResultSetMetaDataインタフェース

〈この項の構成〉

(1) 概要

ResultSetMetaDataインタフェースでは,主に次の機能が提供されます。

(2) メソッド

ResultSetMetaDataインタフェースのメソッド一覧を次の表に示します。なお,表に記載されていないメソッドはサポートしていません。サポートしていないメソッドを指定すると,SQLExceptionを投入します。

表17‒62 ResultSetMetaDataインタフェースのメソッド一覧

メソッド

提供ドライバ

機能

JDBC2.0

JDBC4.0

getCatalogName(int column)

指定された列番号のテーブルでのカタログ名を返します。

getColumnClassName(int column)

カラムに対するJavaクラスの完全指定された名前を返します。

getColumnCount()

このResultSetオブジェクトの列数を返します。

getColumnDisplaySize(int column)

指定された列の通常の最大幅を,文字数で返します。

getColumnLabel(int column)

印刷や表示に使用する列の推奨タイトルを返します。

getColumnName(int column)

指定した列の名前を返します。

getColumnType(int column)

指定した列のSQLデータ型を返します。

getColumnTypeName(int column)

指定された列の,データベース固有の形名を返します。

getPrecision(int column)

指定された列のサイズを返します。

getScale(int column)

指定された列の,小数点以下のけた数を返します。

getSchemaName(int column)

指定された列のテーブルスキーマを返します。

getTableName(int column)

指定された列のテーブル名を返します。

isAutoIncrement(int column)

指定された列が自動的に番号付けされて,読み込み専用として扱われるかどうかを返します。

isCaseSensitive(int column)

列の大文字と小文字が区別されるかどうかを返します。

isCurrency(int column)

指定された列が,通貨の値かどうか返します。

isDefinitelyWritable(int column)

指定された列の書き込みが,成功するかどうかを返します。

isNullable(int column)

指定した列にNULLをセットできるかどうかを返します。

isReadOnly(int column)

指定された列が,読み取り専用かどうかを返します。

isSearchable(int column)

指定された列をwhere節で使用できるかどうかを返します。

isSigned(int column)

指定された列の値が,符号付数値かどうかを返します。

isWritable(int column)

指定された列への書き込みを,成功させることができるかどうかを返します。

(凡例)

○:提供されます。

(a) getCatalogName(int column)

【機能】

指定された列番号のテーブルでのカタログ名を返します。

【形式】
public synchronized String getCatalogName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

常にnullを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(b) getColumnClassName(int column)

【機能】

カラムに対するJavaクラスの完全指定された名前を返します。

【形式】
public synchronized String getColumnClassName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

列に対してResultSet#getObjectメソッドを実行した結果,返却するJavaクラスの型をString型で返します。列のデータ型と返却値を次の表に示します。ただし,繰返し列の場合は"java.sql.Array"を返却します。

表17‒63 getColumnClassNameで返却する文字列

列のHiRDBのデータ型

返却する文字列

BLOB

"java.lang.Object"

BINARY

"java.lang.Object"

INTEGER

"java.lang.Integer"

SMALLINT

"java.lang.Integer"

FLOAT

DOUBLE PRECISION

"java.lang.Double"

SMALLFLT

REAL

"java.lang.Float"

DECIMAL

NUMERIC

"java.math.BigDecimal"

CHAR

"java.lang.String"

MCHAR

"java.lang.String"

NCHAR

"java.lang.String"

VARCHAR

"java.lang.String"

MVARCHAR

"java.lang.String"

NVARCHAR

"java.lang.String"

DATE

"java.sql.Date"

TIME

"java.sql.Time"

TIMESTAMP

"java.sql.Timestamp"

BOOLEAN(DatabaseMetaDataから生成したResultSetにだけ存在する列)

"java.lang.Boolean"

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(c) getColumnCount()

【機能】

このResultSetオブジェクトの列数を返します。

【形式】
public synchronized int getColumnCount()
【引数】

なし。

【戻り値】
int型:

列数

【発生する例外】

なし。

(d) getColumnDisplaySize(int column)

【機能】

指定された列の通常の最大幅を,文字数で返します。

【形式】
public synchronized int getColumnDisplaySize(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
int型:

最大文字数

【機能詳細】

指定された列の通常の最大幅を,文字数で返します。getColumnDisplaySizeで返却する最大文字数を次の表に示します。

表17‒64 getColumnDisplaySizeで返却する最大文字数

列のHiRDBのデータ型

返却する最大文字数

BLOB(n)

BINARY(n)

n

INTEGER

11

SMALLINT

6

FLOAT

DOUBLE PRECISION

23

SMALLFLT

REAL

13

DECIMAL(n,m)

NUMERIC(n,m)

n+2

CHAR(n)

MCHAR(n)

NCHAR(n)

VARCHAR(n)

MVARCHAR(n)

NVARCHAR(n)

n

DATE

10

TIME

8

TIMESTAMP(n)

n>0の場合:19+(n+1)

n=0の場合:19

BOOLEAN(DatabaseMetaDataから生成したResultSetにだけ存在する列)

5

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(e) getColumnLabel(int column)

【機能】

印刷や表示に使用する列の推奨タイトルを返します。

PrdbResultSetMetaData#getColumnNameでの返却値と同じ値(列名)を返します。詳細については,「getColumnName(int column)」を参照してください。

【形式】
public synchronized String getColumnLabel(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(f) getColumnName(int column)

【機能】

指定した列の名前を返します。

【形式】
public synchronized String getColumnName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

指定した列の名前を,HiRDBの列名記述領域の内容で返します。HiRDBサーバからこのドライバに送られる,列名記述領域(SQLCNDA)中のSQLNAMEから,検索項目の名称を取得(かつJavaの内部コードに変換)して返します。ただし,SELECT文で集合関数,値式,WRITE指定を使用した場合,28バイトまで返し,29バイト目以降は,サーバ,クライアント間の通信時に切り捨てられます。また,HiRDBサーバから受け取った次の先頭文字を,このドライバは無視します。

  • △△

  • △■

(凡例)△:半角空白 ■:0xff

指定した列に対するこのメソッドの返却値の内容については,「列名記述領域の構成と内容」を参照してください。

Arrayオブジェクトから取得したResultSetクラスの1列目は,JDBCドライバが生成する列であり,列名として"JDBC_Array_Index"を返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(g) getColumnType(int column)

【機能】

指定した列のSQLデータ型を返します。列のデータ型と返却値の対応については,「SQLデータ型のマッピング」を参照してください。ただし,繰返し列の場合は"java.sql.Array"を返却します。

【形式】
public synchronized int getColumnType(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
int型:

java.sql.TypesからのSQL型

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(h) getColumnTypeName(int column)

【機能】

指定された列の,データベース固有の形名を返します。

【形式】
public synchronized String getColumnTypeName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

指定された列の,データベース固有の形名を返します。列のデータ型と返却値を次の表に示します。

表17‒65 getColumnTypeNameで返却する文字列

列のHiRDBのデータ型

返却する文字列

BLOB

"BLOB"

BINARY

"BINARY"

INTEGER

"INTEGER"

SMALLINT

"SMALLINT"

FLOAT

"FLOAT"

REAL

"REAL"

DECIMAL

"DECIMAL"

CHAR

"CHAR"

MCHAR

"MCHAR"

NCHAR

"NCHAR"

VARCHAR

"VARCHAR"

MVARCHAR

"MVARCHAR"

NVARCHAR

"NVARCHAR"

DATE

"DATE"

TIME

"TIME"

TIMESTAMP

"TIMESTAMP"

BOOLEAN(DatabaseMetaDataから生成したResultSetにだけ存在する列)

"BOOLEAN"

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(i) getPrecision(int column)

【機能】

指定された列のサイズを返します。

【形式】
public synchronized int getPrecision(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
int型:

列のサイズ

【機能詳細】

指定された列のサイズを返します。返却する値を次の表に示します。

表17‒66 getPrecisionの返却値

列のHiRDBのデータ型

返却する値

返却値の単位

BLOB(n),BINARY(n)

n

バイト数

INTEGER

10

10進けた数

SMALLINT

5

10進けた数

FLOAT,DOUBLE PRECISION

15

10進けた数

SMALLFLT,REAL

7

10進けた数

DECIMAL(n,m),NUMERIC(n,m)

n

10進けた数

CHAR(n),MCHAR(n),VARCHAR(n),MVARCHAR(n)

n

文字数

NCHAR(n),NVARCHAR(n)

JDBC2.0:n×2

バイト数

JDBC4.0:n

文字数

DATE

10

文字数

TIME

8

文字数

TIMESTAMP(n)

n>0の場合:19+(n+1)

n=0の場合:19

文字数

BOOLEAN(DatabaseMetaDataから生成したResultSetにだけ存在する列)

1

バイト数

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(j) getScale(int column)

【機能】

指定された列の,小数点以下のけた数を返します。

【形式】
public synchronized int getScale(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
int型:

列の10進けた数

【機能詳細】

指定された列の,小数点以下のけた数を返します。列のデータ型と返却値を次の表に示します。

表17‒67 getScaleで返却する値

列のHiRDBのデータ型

返却する値

DECIMAL

NUMERIC

小数点以下のけた数

TIMESTAMP

ミリ秒以下のけた数

上記以外

0

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(k) getSchemaName(int column)

【機能】

指定された列のテーブルスキーマを返します。

【形式】
public synchronized String getSchemaName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

常にnullを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(l) getTableName(int column)

【機能】

指定された列のテーブル名を返します。

【形式】
public synchronized String getTableName(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】

Stringオブジェクト

【機能詳細】

常にnullを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(m) isAutoIncrement(int column)

【機能】

指定された列が自動的に番号付けされて,読み込み専用として扱われるかどうかを返します。

【形式】
public synchronized boolean isAutoIncrement(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:指定された列は自動的に番号付けされて,読み込み専用として扱われます。

false:指定された列は自動的に番号付けされないか,又は読み込み専用として扱われません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(n) isCaseSensitive(int column)

【機能】

列の大文字と小文字が区別されるかどうかを返します。

【形式】
public synchronized boolean isCaseSensitive(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:列の大文字と小文字が区別されます。

false:列の大文字と小文字が区別されません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(o) isCurrency(int column)

【機能】

指定された列が,通貨の値かどうか返します。

【形式】
public synchronized boolean isCurrency(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:列が通貨の値を示します。

false:列が通貨の値を示しません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(p) isDefinitelyWritable(int column)

【機能】

指定された列の書き込みが,成功するかどうかを返します。

【形式】
public synchronized boolean isDefinitelyWritable(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:列の書き込みが成功します。

false:列の書き込みが成功するとは限りません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(q) isNullable(int column)

【機能】

指定した列にNULLをセットできるかどうかを返します。

【形式】
public synchronized int isNullable(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
int型:

ResultSetMetaData.columnNoNulls:NULL値をセットできません。

ResultSetMetaData.columnNullable:NULL値をセットできます。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(r) isReadOnly(int column)

【機能】

指定された列が,読み取り専用かどうかを返します。

【形式】
public synchronized boolean isReadOnly(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:読み取り専用です。

false:読み取り専用とは限りません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(s) isSearchable(int column)

【機能】

指定された列をwhere節で使用できるかどうかを返します。

【形式】
public synchronized boolean isSearchable(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:where節で使用できます。

false:where節で使用できません。

【機能詳細】

DatabaseMetaDataから生成したResultSetの場合,falseを返します。

DatabaseMetaDataから生成したResultSetではない場合,trueを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(t) isSigned(int column)

【機能】

指定された列の値が,符号付数値かどうかを返します。

【形式】
public synchronized boolean isSigned(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:符号付数値です。

false:符号付数値ではありません。

【機能詳細】

指定された列の値が,符号付数値かどうかを返します。列のデータ型と返却値を次の表に示します。

表17‒68 isSignedで返却する値

列のHiRDBのデータ型

返却する値

INTEGER

SMALLINT

FLOAT

DOUBLE PRECISION

REAL

SMALLFLT

DECIMAL

NUMERIC

true

上記以外

false

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(u) isWritable(int column)

【機能】

指定された列への書き込みを,成功させることができるかどうかを返します。

【形式】
public synchronized boolean isWritable(int column) throws SQLException
【引数】
int column:

1から始まる列番号

【戻り値】
boolean型:

true:書き込みを成功させることができます。

false:書き込みを成功させることができません。

【機能詳細】

常にfalseを返します。

【発生する例外】

column指定値が0以下,又は列数より大きい場合,SQLExceptionを投入します。

(3) パッケージ名称及びクラス名称

このインタフェースを実装するパッケージ名称とクラス名称を次に示します。

パッケージ名称:JP.co.Hitachi.soft.HiRDB.JDBC

クラス名称:PrdbResultSetMetaData

(4) 注意事項

(a) getColumnName,getColumnLabelメソッド

getColumnName,及びgetColumnLabelメソッドは,HiRDBサーバからJDBCドライバに送られる列名記述領域(SQLCNDA)中のSQLNAMEから検索項目の名称を取得し,Javaの内部コードに変換して返却します。指定した列に対するこれらのメソッドの返却値の内容は,「列名記述領域の構成と内容」を参照してください。