OracleDataReader.GetSchemaTable 方法

定義

傳回 DataTable,描述 OracleDataReader 的資料行中繼資料 (Metadata)。

public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public:
 override System::Data::DataTable ^ GetSchemaTable();
public System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable GetSchemaTable ();
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Function GetSchemaTable () As DataTable
Public Overrides Function GetSchemaTable () As DataTable

傳回

描述資料行中繼資料的 DataTable

實作

備註

方法 GetSchemaTable 會依下列順序傳回每個數據行的相關元數據:

DataReader 數據行 描述
ColumnName 數據行的名稱;這可能不是唯一的。 如果無法判斷數據行名稱,則會傳回 Null 值。 此名稱一律會反映目前檢視或命令文字中數據行的最新命名。
ColumnOrdinal 資料行以零為起始的序數。 這個資料行不能包含 null 值。
ColumnSize 資料欄中值的可能長度上限。 對於使用固定長度數據類型的數據行,這是數據類型的大小。
NumericPrecision 如果 DbType 是數值數據類型,則這是數據行的最大精確度。 精確度取決於數據行的定義。 Float Oracle 中的和 Double 數據類型是二進位精確度。
NumericScale 如果 DbType 是數值數據類型,小數點右邊的數字數目。 Float Oracle 中的和 Double 數據類型是二進位規模。
DataType 對應至 的 DbTypeCommon Language Runtime 類型。
IsLong true 如果資料列包含二進位 Long 物件 (BLOB) 包含非常長的數據, 則為 。
AllowDBNull true 如果取用者可以將數據行設定為 Null 值,則為 ;否則為 false。 資料行可包含 null 值,即使它不得設定為 null 值。
IsUnique true:基表中沒有兩個數據列,也就是 中 BaseTableName 傳回的數據表在這個數據行中可以有相同的值。 如果資料行本身構成索引鍵,或只有唯一類型的條件約束僅適用於此資料行,則 IsUnique 保證true為 。 false:數據行可以包含基表中的重複值。 此數據行的預設值為 false。
IsKey true:數據行是數據列集中的其中一組數據行,可一起唯一識別數據列。 IsKey 設定為 true 的數據行集合必須唯一識別數據列集中的數據列。 不需要這組資料行集是最基本的資料行集。 這組資料行可從基底資料表主索引鍵產生,為一不重複的條件約束或不重複的索引。 false:數據行不需要唯一識別數據列。
BaseTableName 包含此資料行的資料存放區中資料表或檢視中的名稱。 如果無法判斷基底資料表名稱,則為 null 值。 此數據行的預設值為 Null 值。
BaseColumnName 在資料存放區中的資料行名稱。 如果使用別名,這可能不同於 ColumnName 數據行中傳回的數據行名稱。 如果無法判斷基底數據行名稱,或數據列集數據行衍生但與數據存放區中的數據行不同,則為 Null 值。 此數據行的預設值為 Null 值。
BaseSchemaName 包含資料行的資料存放區中之結構描述名稱。 如果無法判斷基底結構描述名稱,則為 null 值。 此數據行的預設值為 Null 值。

系統會針對結果集中的每個數據行傳回一個數據列。

注意

若要確保元資料行傳回正確的資訊,您必須呼叫 ExecuteReaderbehavior ,並將 參數設定為 KeyInfo。 否則,架構數據表中的某些數據行可能會傳回預設、Null 或不正確的數據。

適用於

另請參閱