開発者リファレンス : データ アクセス方法 : Data Providers for ADO.NET : スキーマ情報の入手
  
このページをシェアする                  
スキーマ情報の入手
データベースのメタデータの検索および取り出し
アプリケーションは、データベースのメタデータを検索して返すよう、データ プロバイダーに要求することができます。各データ プロバイダー固有のスキーマ コレクションは、テーブルや列などのデータベース スキーマ要素を公開します。データ プロバイダーは Connection クラスの GetSchema メソッドを使用します。スキーマ情報は GetSchemaTable メソッドによって返される列で説明されているように、結果セットからも取得できます。
データ プロバイダーにもプロバイダー固有のスキーマ コレクションが含まれています。スキーマ コレクション名 MetaDataCollections を使用すると、サポートされるスキーマ コレクションの一覧と、それらがサポートする制限の数を返すことができます。
GetSchemaTable メソッドによって返される列
PsqlDataReader が開いている間は、結果セットからスキーマ情報を取得することができます。PsqlDataReader.GetSchemaTable() で生成された結果セットは、表 58 に説明されている列を、指定された順序で返します。
 
表 58 PsqlDataReader の GetSchemaTable で返される列
説明
ColumnName
列の名前。列名は一意でない場合もあります。判断できない場合は、null 値が返されます。この名前は、現在のビュー内またはコマンド テキスト内の列に対する最新の名前変更を常に反映した名前になります。
ColumnOrdinal
列の序数。この列に null 値を含めることはできません。行のブックマーク列(ある場合)はゼロになります。その他の列は 1 から順に番号が付けられます。
ColumnSize
列の値に許容される最大長。固定長データ型を使用する列では、そのデータ型のサイズになります。
NumericPrecision
列の精度。これは ProviderType での列の定義方法によって決まります。
ProviderType が数値データ型の場合、これは列の最大精度になります。
ProviderType が数値データ型以外の場合は、null 値になります。
NumericScale
小数点の右側の桁数。これは、ProviderType が DBTYPE_DECIMAL または DBTYPE_NUMERIC の場合です。それ以外の場合は、null 値になります。
この値は、ProviderType での列の定義方法によって決まります。
DataType
列を .NET Framework の型にマップします。
ProviderType
列のデータ型のインジケーター。この列に null 値を含めることはできません。
列のデータ型が行によって異なる場合は、Object である必要があります。
IsLong
非常に長いデータを格納する BLOB が列に含まれている場合に設定されます。このフラグの設定は、データ型の、PROVIDER_TYPES 行セット内の IS_LONG 列の値に対応します。
非常に長いデータの定義は、プロバイダーによって異なります。
AllowDBNull
コンシューマーが列に null 値を設定できる場合や、コンシューマーが列に null 値を設定できるかどうかをデータ プロバイダーが判断できない場合に、設定されます。それ以外の場合は、設定されません。
列を null 値に設定できない場合でも、null 値が含まれている可能性があります。
IsReadOnly
列を変更できるかどうかを決定します。
列が変更できない場合は true、それ以外の場合は false です。
IsRowVersion
書き込み禁止で、行の識別以外に意味のない値を持つ永続的な行 ID が列に格納されている場合に、設定されます。
IsUnique
列自体がキーを構成しているか、あるいは、その列だけに適用される UNIQUE 型の制約があるかどうかを示します。
true に設定した場合、ベース テーブル(BaseTableName で返されるテーブル)の行は、この列に同じ値を格納できません。
false(デフォルトの初期値)に設定した場合は、ベース テーブルでこの列に重複する値を格納できます。
IsKey
列のセットが行セットの 1 行を一意に識別するかどうかを指定します。この列のセットは、ベース テーブルの主キー、一意の制約、または重複のないインデックスから生成することができます。
列が、行セット内の列のセットのうちの 1 つで、これらを基に行を一意に識別する場合は true です。列が行を一意に識別する必要がない場合は false です。
IsAutoIncrement
新しい行に固定インクリメントで値を割り当てるかどうかを指定します。
VARIANT_TRUE に設定すると、列は新しい行に固定インクリメントで値を割り当てます。
VARIANT_FALSE(デフォルトの初期値)に設定すると、列は新しい行に固定インクリメントで値を割り当てません。
BaseSchemaName
列を格納している、データベース内のスキーマの名前。基本スキーマ名を判断できない場合は null 値です。
デフォルトの初期値は null です。
BaseCatalogName
列を格納している、データ ストア内のカタログの名前。基本カタログ名を判断できない場合は null 値が使用されます。
デフォルトの初期値は null です。
BaseTableName
列を格納している、データ ストア内のテーブルまたはビューの名前。基本テーブル名を判断できない場合は null 値が使用されます。
デフォルトの初期値は null です。
BaseColumnName
データ ストア内での列名。エイリアスが使用された場合は、ColumnName 列に返される列名とは異なることがあります。基本列名を判断できない場合や、データベース内の列から派生した行セット列であるのにそれと一致しない場合は、null 値が使用されます。
デフォルトの初期値は null です。
IsAliased
列の名前がエイリアスであるかどうかを指定します。列名がエイリアスであれば、値 true が返されます。そうでなければ、false が返されます。
IsExpression
列の名前が式であるかどうかを指定します。列が式であれば、値 true が返されます。そうでなければ、false が返されます。
IsIdentity
列の名前が ID 列であるかどうかを指定します。列が ID 列であれば、値 true が返されます。そうでなければ、false が返されます。
IsHidden
列の名前が非表示であるかどうかを指定します。列が表示されない場合は、値 true が返されます。そうでなければ、false が返されます。
GetSchema メソッドによるスキーマ メタデータの取得
アプリケーションでデータ プロバイダーおよびデータ ソースに関するスキーマ メタデータを取得する場合は、Connection オブジェクトの GetSchema メソッドを使用を使用します。各プロバイダーには 5 つの標準メタデータ コレクションも含め、多数のスキーマ コレクションが実装されています。
MetaDataCollections スキーマ コレクション
DataSourceInformation スキーマ コレクション
DataTypes コレクション
ReservedWords コレクション
Restrictions コレクション
追加のコレクションを指定したら、データ プロバイダーからスキーマ情報を返す機能がサポートされるようにしておく必要があります。
データ プロバイダーでサポートされるその他のコレクションの詳細については、Additional スキーマ コレクションを参照してください。
メモ:各 ColumnName で必要なデータ型など、さらなるバックグラウンド機能要件については、.NET Framework ドキュメントを参照してください。
MetaDataCollections スキーマ コレクション
MetaDataCollections スキーマ コレクションは、ログインしているユーザーが利用できるスキーマ コレクションの一覧です。MetaDataCollection は、表 59 に記載されているサポートされる列を任意の順序で返すことができます。
 
表 59 MetaDataCollections スキーマ コレクションによって返される列
列名
説明
CollectionName
コレクションを返すために GetSchema メソッドに渡すコレクションの名前。
NumberOfRestrictions
コレクションに指定されている可能性のある制限の数。
NumberOfIdentifierParts
複合識別子/データベース オブジェクト名の構成要素の数。
DataSourceInformation スキーマ コレクション
DataSourceInformation スキーマ コレクションは、表 60 に記載されているサポートされる列を任意の順序で返すことができます。1 行のみ返されることに注意してください。
 
表 60 DataSourceInformation コレクションによって返される列名
列名
説明
CompositeIdentifierSeparatorPattern
複合識別子内の複合識別子に一致する正規表現。
DataSourceProductName
データ プロバイダーがアクセスする製品の名前。
DataSourceProductVersion
データ プロバイダーがアクセスする製品のバージョンをデータ ソースのネイティブ形式で示します。
DataSourceProductVersionNormalized
データ ソースの標準化されたバージョン。これにより、String.Compare() を使ってバージョンを比較できるようになります。
GroupByBehavior
GROUP BY 句内の列と、選択リスト内の集計されない列の間の関係を指定します。
Host
データ プロバイダーが接続しているホスト。
IdentifierCase
引用符で囲まれていない識別子の大文字小文字を区別して処理するかどうかを示します。
IdentifierPattern
識別子に一致する正規表現で、識別子の適合値を持ちます。
OrderByColumnsInSelect
ORDER BY 句内の列は選択リスト内にある必要があるかどうかを指定します。true の値は、当該列が選択リストに存在しなければならないことを示し、false の値は選択リストに存在しなくてもよいことを示します。
ParameterMarkerFormat
パラメーターの書式設定方法を示す書式文字列。
ParameterMarkerPattern
パラメーター マーカーに一致する正規表現。もしあれば、パラメーター名の適合値を持ちます。
ParameterNameMaxLength
パラメーター名の最大長(文字単位)。
ParameterNamePattern
有効なパラメーター名に一致する正規表現。
QuotedIdentifierCase
引用符で囲まれた識別子の大文字小文字を区別して処理するかどうかを示します。
QuotedIdentifierPattern
引用符で囲まれた識別子に一致する正規表現で、引用符の付いていない識別子自体の適合値を持ちます。
StatementSeparatorPattern
ステートメント区切り文字に一致する正規表現。
StringLiteralPattern
文字列リテラルに一致する正規表現で、リテラル自体の適合値を持ちます。
SupportedJoinOperators
データ ソースでサポートされる、SQL 結合ステートメントの種類を指定します。
DataTypes コレクション
61 では、DataTypes スキーマ コレクションでサポートされる列について説明します。列は任意の順序で取得できます。
 
表 61 DataTypes コレクションによって返される列名
列名
説明
ColumnSize
数値以外の列またはパラメーターの長さは、この型の最大長もしくは、データ プロバイダーがこの型に対して定義している長さを参照します。
CreateFormat
CREATE TABLE など、この列をデータ定義ステートメントに追加する方法を示す書式文字列。
CreateParameters
このデータ型の列を作成するときに指定する必要のある作成パラメーター。各作成パラメーターは文字列で、それらを提供する順にカンマで区切って列挙します。
たとえば、SQL データ型の DECIMAL には精度と小数点以下の桁数が必要です。この場合は、文字列 "精度, 小数位" を作成パラメーターに含める必要があります。
精度 10、小数位 2 の DECIMAL 列を作成するテキスト コマンドでは、CreateFormat 列の値を "DECIMAL({0},{1})" とすることができます。完全な型指定は DECIMAL(10,2) となります。
DataType
データ型に対する .NET Framework 型の名前。
IsAutoIncrementable
データ型の値を自動インクリメントするかどうかを指定します。
true:このデータ型の値は自動インクリメントできます。
false:このデータ型の値は自動インクリメントできません。
IsBestMatch
このデータ型は、データ ストア内のすべてのデータ型と、DataType 列の値によって示される .NET Framework データ型の間で最適なものであるかどうかを指定します。
true:最適なデータ型です。
false:最適なデータ型ではありません。
IsCaseSensitive
データ型は文字型で、大文字小文字を区別するかどうかを指定します。
true:文字型で、大文字小文字を区別します。
false:文字型でないか、もしくは大文字小文字を区別しません。
IsConcurrencyType
true:このデータ型は行が変更されるたびにデータベースによって更新され、列の値は以前のあらゆる値と異なるものになります。
false:このデータ型は行が変更されるたびにデータベースによって更新されません。
IsFixedLength
true:データ定義言語(DDL)によって作成されるこのデータ型の列は固定長になります。
false:DDL によって作成されるこのデータ型の列は可変長になります。
IsFixedPrecisionScale
true:データ型は固定の精度と小数点以下の桁数を持ちます。
false:データ型は固定の精度と小数点以下の桁数を持ちません。
IsLiteralsSupported
true:データ型をリテラルで表すことができます。
false:データ型をリテラルで表すことはできません。
IsLong
true:データ型は非常に長いデータを格納します。非常に長いデータの定義は、プロバイダーによって異なります。
false:データ型は非常に長いデータを格納しません。
IsNullable
true:データ型はヌル値を許可します。
false:データ型はヌル値を許可しません。
IsSearchable
true:データ型は非常に長いデータを格納します。非常に長いデータの定義は、プロバイダーによって異なります。
false:データ型は非常に長いデータを格納しません。
IsSearchableWithLike
true:LIKE 述部で使用できません。
false:LIKE 述部で使用できません。
IsUnisgned
true:データ型は符号なしです。
false:データ型は符号付きです。
LiteralPrefix
指定されたリテラルに適用するプレフィックス。
LiteralSuffix
指定されたリテラルに適用するサフィックス。
MaximumScale
型インジケーターが数値型の場合は、これは小数点の右側に割り当てられる最大桁数になります。
それ以外の場合、これは DBNull.Value になります。
MinimumScale
型インジケーターが数値型の場合は、これは小数点の右側に割り当てられる最小桁数になります。
それ以外の場合、これは DBNull.Value になります。
ProviderDbType
パラメーターの型を指定する場合に使用する必要のあるプロバイダー固有の型の値。
TypeName
プロバイダー固有のデータ型名。
ReservedWords コレクション
このスキーマ コレクションは、データ プロバイダーが接続するデータベースで予約されている語句についての情報を公開します。表 62 では、データ プロバイダーがサポートする列について説明します。
 
表 62 ReservedWords スキーマ コレクション
列名
説明
Reserved Word
プロバイダー固有の予約語。
Restrictions コレクション
Restrictions スキーマ コレクションは、現在データベースに接続しているデータ プロバイダーでサポートされる制限に関する情報を公開します。表 63 では、データ プロバイダーから返される列について説明します。列は任意の順序で取得できます。
ADO.NET データ プロバイダーは標準化された名前を制限に使用します。データ プロバイダーが Schema メソッドの制限をサポートしている場合は、制限に対して常に同じ名前を使用します。
制限値の大文字小文字の区別は基になるデータベースによって決定されますが、DataSourceInformation コレクションの IdentifierCase 値および QuotedIdentifierCase 値によっても決定することができます(DataSourceInformation スキーマ コレクションを参照してください)。
 
表 63 Restrictions コレクションによって返される列名
列名
説明
CollectionName
指定した制限を適用するコレクションの名前。
RestrictionName
コレクション内の制限の名前。
RestrictionDefault
無視されます。
RestrictionNumber
この制限の、コレクション Restrictions 内における実際の場所。
IsRequired
制限が必要かどうかを指定します。
サポートされる追加のスキーマ コレクションそれぞれに適用する制限については、Additional スキーマ コレクションを参照してください。
Additional スキーマ コレクション
Zen ADO.NET データ プロバイダーは、以下に示す追加のスキーマ コレクションをサポートしています。
Columns スキーマ コレクション
ForeignKeys スキーマ コレクション
Indexes スキーマ コレクション
PrimaryKeys スキーマ コレクション
ProcedureParameters スキーマ コレクション
Procedures スキーマ コレクション
TablePrivileges スキーマ コレクション
Tables スキーマ コレクション
Views スキーマ コレクション
Columns スキーマ コレクション
説明:Columns スキーマ コレクションは、指定したユーザーがアクセスできるカタログに定義されているテーブル(ビューも含む)の列を識別します。表 64 では、指定したユーザーがアクセスできるカタログに定義されているテーブルの列を示します。
制限の数:3
使用可能な制限:TABLE_CATALOG、TABLE_NAME、COLUMN_NAME
ソート順:TABLE_CATALOG、TABLE_NAME、ORDINAL_POSITION
 
表 64 Columns スキーマ コレクション
列名
.NET Framework データ型1
説明
CHARACTER_MAXIMUM_LENGTH
Int32
列の値に許容される最大長。文字、バイナリ、またはビットの列の場合、これは次のいずれかになります。
いずれかの列が定義されている場合は、それぞれ文字単位、バイト単位、ビット単位の列の最大長。
列の長さが定義されていない場合は、それぞれ文字単位、バイト単位、ビット単位のデータ型の最大長。
列にもデータ型にも最大長が定義されていない場合、あるいは列が文字、バイナリ、ビットのいずれでもない場合は、ゼロ(0)。
CHARACTER_OCTET_LENGTH
Int32
列の型が文字またはバイナリの場合は、8 進数(バイト単位)で表す列の最大長。
値ゼロ(0)は、その列が最大長を持たないか、あるいは、文字またはバイナリの列でないことを意味します。
COLUMN_DEFAULT
String
列のデフォルト値。
COLUMN_HASDEFAULT
Boolean
TRUE:列にはデフォルト値があります。
FALSE:列にデフォルト値がないか、もしくはデフォルト値があるかどうかが不明です。
COLUMN_NAME
String
列の名前。これは一意でない可能性があります。
DATA_TYPE
Object
列のデータ型のインジケーター。
この値をヌルにすることはできません。
IS_NULLABLE
Boolean
TRUE:列はヌル値を許可する可能性があります。
FALSE:列がヌル値を許可するかどうかわかりません。
NATIVE_DATA_TYPE
String
型のデータ ソース記述。
この値をヌルにすることはできません。
NUMERIC_PRECISION
Int32
列のデータ型が数値データのものである場合、これは列の最大精度(有効桁数)になります。
NUMERIC_PRECISION_RADIX
Int32
どの数を基礎として NUMERIC_PRECISION および NUMERIC_SCALE で値を表現するかを示す基数。2 または 10 を返す場合にのみ有効です。
NUMERIC_SCALE
Int16
列の型が小数位を持つ数値型の場合、これは小数点より右側の桁数です。
ORDINAL_POSITION
Int32
列の序数。列には 1 から始まる番号が付けられています。
PROVIDER_DEFINED_TYPE
Int32
列のデータ ソース定義の型は、データ プロバイダーの型の列挙(たとえば PsqlDbType 列挙)にマップされています。
この値をヌルにすることはできません。
PROVIDER_GENERIC_TYPE
Int32
列のプロバイダー定義の型は System.Data.DbType 列挙にマップされています。
この値をヌルにすることはできません。
TABLE_CATALOG
String
データベース名。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

ForeignKeys スキーマ コレクション
説明:ForeignKeys スキーマ コレクションは、指定したユーザーによってカテゴリ内に定義された外部キー列を識別します。
制限の数:2
使用可能な制限:FK_TABLE_CATALOG、PK_TABLE_NAME
ソート順:FK_TABLE_CATALOG、FK_TABLE_NAME
 
表 65 ForeignKeys スキーマ コレクション
列名
.NET Framework データ型1
説明
DEFERRABILITY
String
外部キーを延期できるか。次のいずれかの値になります。
INITIALLY DEFERRED
INITIALLY IMMEDIATE
NOT DEFERRABLE
DELETE_RULE
String
削除規則が指定された場合は、次のいずれかの値になります。
CASCADE:CASCADE の参照操作が指定されました。
SET NULL:SET NULL の参照操作が指定されました。
SET DEFAULT:SET DEFAULT の参照操作が指定されました。
NO ACTION:NO ACTION の参照操作が指定されました。
FK_COLUMN_NAME
String
外部キー列の名前。
FK_NAME
String
外部キー名。この制限は必須です。
FK_TABLE_CATALOG
String
外部キー テーブルが定義されているカタログ名。
FK_TABLE_NAME
String
外部キー テーブル名。この制限は必須です。
FK_TABLE_OWNER
String
外部キー テーブルの所有者。この制限は必須です。
ORDINAL
Int32
キーにおける列名の順序。たとえば、あるテーブルに別のテーブルへの外部キー参照がいくつか含まれているとします。序数は参照ごとに最初から始まります。3 列のキーへの 2 つの参照ならば、1, 2, 3, 1, 2, 3 を返します。
PK_COLUMN_NAME
String
主キー列の名前。
PK_NAME
String
主キー名。
PK_TABLE_CATALOG
String
主キー テーブルが定義されているカタログ名。
PK_TABLE_NAME
String
主キー テーブル名。
PK_TABLE_OWNER
String
主キー テーブルの所有者。この制限は必須です。
UPDATE_RULE
String
更新規則が指定された場合は、次のいずれかの値になります。
CASCADE:CASCADE の参照操作が指定されました。
SET NULL:SET NULL の参照操作が指定されました。
SET DEFAULT:SET DEFAULT の参照操作が指定されました。
NO ACTION:NO ACTION の参照操作が指定されました。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

Indexes スキーマ コレクション
説明:Indexes スキーマ コレクションは、指定したユーザーが所有しているカテゴリ内に定義されたインデックスを識別します。
制限の数:2
使用可能な制限:TABLE_CATALOG、TABLE_NAME
ソート順:UNIQUE、TYPE、INDEX、CATALOG、INDEX_NAME、ORDINAL_POSITION
 
表 66 Indexes スキーマ コレクション
列名
.NET Framework データ型1
説明
CARDINALITY
Int32
インデックスに含まれる一意な値の数。
COLLATION
String
次のいずれかの値になります。
ASC:列の並べ替え順は昇順です。
DESC:列の並べ替え順は降順です。
COLUMN_NAME
String
列名。
FILTER_CONDITION
String
フィルター制限を識別する WHERE 句。
INDEX_CATALOG
String
カタログ名。
INDEX_NAME
String
インデックス名。
ORDINAL_POSITION
Int32
インデックスにおける列の位置を表す、1 から始まる序数。
PAGES
Int32
インデックスの格納に使用されるページ数。
TABLE_CATALOG
String
カタログ名。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。
TABLE_QUALIFIER
String
テーブル修飾子。
TYPE
String
インデックスの種類。次のいずれかの値です。
BTREE:インデックスは B+-ツリーです。
HASH:インデックスは、直線的なハッシュや伸縮可能なハッシュを用いたハッシュ ファイルです。
CONTENT:インデックスはコンテンツ インデックスです。
OTHER:インデックスは上記の種類以外のインデックスです。
UNIQUE
Boolean
 

1 クラスはすべて System.XXX です。たとえば、System.String となります。

PrimaryKeys スキーマ コレクション
説明:PrimaryKeys スキーマ コレクションは、指定したユーザーによってカテゴリ内に定義された主キー列を識別します。
制限の数:2
使用可能な制限:TABLE_CATALOG、TABLE_NAME
ソート順:TABLE_CATALOG、TABLE_NAME
 
表 67 PrimaryKeys スキーマ コレクション
列名
.NET Framework データ型1
説明
COLUMN_NAME
String
主キー列の名前。
ORDINAL
Int32
キーにおける列名の順序。
PK_NAME
String
主キー名。
TABLE_CATALOG
String
テーブルが定義されているデータベース名。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

ProcedureParameters スキーマ コレクション
説明:ProcedureParameters スキーマ コレクションは、Procedures コレクションの一部であるプロシージャのパラメーターおよびリターン コードに関する情報を返します。
制限の数:3
使用可能な制限:PROCEDURE_CATALOG、PROCEDURE_NAME、PARAMETER_NAME
ソート順:PROCEDURE_CATALOG、PROCEDURE_NAME、ORDINAL_POSITION
 
表 68 ProcedureParameters スキーマ コレクション
列名
.NET Framework データ型1
説明
CHARACTER_MAXIMUM_LENGTH
Int32
パラメーターの最大長。
CHARACTER_OCTET_LENGTH
Int32
パラメーターの型が文字またはバイナリの場合は、8 進数(バイト単位)で表すパラメーターの最大長。
パラメーターが最大長を持たない場合、値はゼロ(0)になります。
上記の型以外のパラメーターでは、値は -1 になります。
DATA_TYPE
Object
列のデータ型のインジケーター。
この値をヌルにすることはできません。
DESCRIPTION
String
パラメーターの記述。たとえば、新しい従業員を追加するプロシージャの Name パラメーターの記述を Employee name としてもかまいません。
IS_NULLABLE
Boolean
TRUE:パラメーターはヌル値を許可する可能性があります。
FALSE:パラメーターはヌル値を許可しません。
NATIVE_DATA_TYPE
String
型のデータ ソース記述。
この値をヌルにすることはできません。
NULLABLE
String
パラメーターにヌル値を指定できるかどうかを示します。指定可能な 2 つの値は、YES と NO です。
NUMERIC_PRECISION
Int32
列のデータ型が数値である場合、これは列の最大精度(有効桁数)になります。
列のデータ型が数値でない場合、これは DbNull になります。
NUMERIC_PRECISION_RADIX
Int32
列のデータ型が数値である場合に適用可能です。
どの数を基礎として NUMERIC_PRECISION および NUMERIC_SCALE で値を表現するかを示す基数。2 または 10 を返す場合にのみ有効です。
NUMERIC_SCALE
Int16
列のデータ型が小数位を持つ数値型の場合、これは小数点より右側の桁数です。
それ以外の場合、これは DbNull になります。
ORDINAL_POSITION
Int32
パラメーターが入力、入出力、または出力パラメーターである場合、これはプロシージャ呼び出しにおけるパラメーターの位置を表す、1 から始まる序数です。
パラメーターが戻り値の場合、これは DbNull になります。
PARAMETER_DEFAULT
String
パラメーターのデフォルト値。
デフォルト値が NULL の場合、PARAMETER_HASDEFAULT 列は TRUE を返し、PARAMETER_DEFAULT 列は存在しなくなります。
PARAMETER_HASDEFAULT に FALSE を設定すると、PARAMETER_DEFAULT 列が存在しなくなります。
PARAMETER_HASDEFAULT
Boolean
TRUE:パラメーターにはデフォルト値があります。
FALSE:パラメーターにデフォルト値がないか、もしくはデフォルト値があるかどうかが不明です。
PARAMETER_NAME
String
パラメーター名。パラメーターに名前が付いていない場合、これは DbNull になります。
PARAMETER_TYPE
String
次のいずれかの値になります。
INPUT:パラメーターは入力パラメーターです。
INPUTOUTPUT:パラメーターは入出力パラメーターです。
OUTPUT:パラメーターは出力パラメーターです。
RETURNVALUE:パラメーターはプロシージャの戻り値です。
UNKNOWN:データ プロバイダーには不明なパラメーターの種類です。
PROCEDURE_CATALOG
String
カタログ名。
PROCEDURE_NAME
String
プロシージャ名。
PROCEDURE_COLUMN_NAME
String
プロシージャ列名。
PROVIDER_DEFINED_TYPE
Int32
列のデータ ソース定義の型は、データ プロバイダーの型の列挙(たとえば PSQLDbType 列挙)にマップされています。
この値をヌルにすることはできません。
PROVIDER_GENERIC_TYPE
Int32
列のデータ ソース定義の型は System.Data.DbType 列挙にマップされています。
この値をヌルにすることはできません。
SQL_DATETIME_SUB
Object
列のデータ型が DateTime である場合に適用可能です。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

Procedures スキーマ コレクション
説明:Procedures スキーマ コレクションは、カタログに定義されているプロシージャを識別します。可能であれば、接続ユーザーが EXECUTE 権限を持っているプロシージャのみを返すようにしてください。
制限の数:2
使用可能な制限:PROCEDURE_CATALOG、PROCEDURE_NAME、PROCEDURE_TYPE
ソート順:PROCEDURE_CATALOG、PROCEDURE_NAME
 
表 69 Procedures スキーマ コレクション
列名
.NET Framework データ型1
説明
PROCEDURE_CATALOG
String
データベース名。
PROCEDURE_NAME
String
プロシージャ名。
PROCEDURE_OWNER
String
プロシージャ所有者。
PROCEDURE_TYPE
String
次のいずれかの値になります。
UNKNOWN:値が返されるかどうかわかりません。
PROCEDURE:プロシージャ。値は返されません。
FUNCTION:関数。値が返されます。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

TablePrivileges スキーマ コレクション
説明:TablePrivileges スキーマ コレクションは、カタログに定義されているテーブルについて、指定したユーザーが利用できる、つまり許可されている権限を識別します。
制限の数:3
使用可能な制限:TABLE_CATALOG、TABLE_NAME、GRANTEE
ソート順:TABLE_CATALOG、TABLE_NAME、PRIVILEGE_TYPE
 
表 70 TablePrivileges スキーマ コレクション
列名
型インジケーター1
説明
GRANTEE
String
権限が付与されているユーザー名(または PUBLIC)。
PRIVILEGE_TYPE
String
権限のタイプ。次のいずれかのタイプになります。
DELETE
INSERT
REFERENCES
SELECT
UPDATE
TABLE_CATALOG
String
テーブルが定義されているデータベースの名前。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

Tables スキーマ コレクション
説明:Tables スキーマ コレクションは、指定したユーザーがアクセスできるカタログに定義されているテーブル(ビューも含む)を識別します。
制限の数:3
使用可能な制限:TABLE_CATALOG、TABLE_NAME、TABLE_TYPE
ソート順:TABLE_TYPE、TABLE_CATALOG、TABLE_NAME
 
表 71 Tables スキーマ コレクション
列名
.NET Framework データ型1
説明
DESCRIPTION
String
テーブルの記述。
列に関連付けられている記述がない場合、データ プロバイダーは DbNull を返します。
TABLE_CATALOG
String
テーブルが定義されているデータベースの名前。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。
TABLE_TYPE
String
テーブルの種類。次のいずれかです。
ALIAS
GLOBAL TEMPORARY
LOCAL TEMPORARY
SYNONYM
SYSTEM TABLE
SYSTEM VIEW
TABLE
VIEW
この列に空文字列を含めることはできません。

1 クラスはすべて System.XXX です。たとえば、System.String となります。

Views スキーマ コレクション
説明:Views スキーマ コレクションは、指定したユーザーがアクセスできるカタログに定義されているビューを識別します。
制限の数:2
使用可能な制限:TABLE_CATALOG、TABLE_NAME
ソート順:TABLE_CATALOG、TABLE_NAME
 
表 72 Views スキーマ コレクション
列名
型インジケーター1
説明
TABLE_CATALOG
String
テーブルが定義されているデータベースの名前。
TABLE_NAME
String
テーブル名。
TABLE_OWNER
String
テーブル所有者。
TABLE_QUALIFIER
String
テーブル修飾子。
VIEW _DEFINITION
String
ビュー定義。これはクエリ式です。

1 クラスはすべて System.XXX です。たとえば、System.String となります。