OracleDataReader.GetSchemaTable 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个 DataTable,它描述 OracleDataReader 的列元数据。
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 和 Double Oracle 中的数据类型是二进制精度。 |
NumericScale | 如果 DbType 是数值数据类型,则为小数点右侧的位数。
Float 和 Double Oracle 中的数据类型是二进制缩放。 |
数据类型 | 映射到 的公共语言运行时类型 DbType。 |
IsLong |
true 如果列包含包含很长数据的二进制长对象 (BLOB) 。 |
AllowDBNull |
true 如果使用者可以将列设置为 null 值,则为 ;否则为 false 。 即使无法将列设置为 NULL 值,列也可以包含 NULL 值。 |
IsUnique |
true :基表中的两行(在 中返回的 BaseTableName 表)不能在此列中具有相同的值。 如果列本身构成键,或者存在仅适用于此列的 UNIQUE 类型的约束,则保证 true IsUnique 为 。
false :该列可以在基表中包含重复值。 此列的默认值为 false。 |
IsKey |
true :列是行集中唯一标识行的一组列之一。
IsKey 设置为 true 的列集必须唯一标识行集中的行。 不要求这组列是最小组列。 此组列可能从一个基表主键、唯一约束或唯一索引生成。
false :不需要列来唯一标识行。 |
BaseTableName | 包含该列的数据存储区中的表或视图的名称。 如果无法确定基表名称,则为 NULL 值。 此列的默认值为 null 值。 |
BaseColumnName | 数据存储区中列的名称。 如果使用别名,这可能不同于 ColumnName 列中返回的列名。 如果无法确定基列名称,或者行集列派生(但不完全相同)数据存储中的列,则为 null 值。 此列的默认值为 null 值。 |
BaseSchemaName | 包含该列的数据存储区中架构的名称。 如果无法确定基本架构名称,则为 NULL 值。 此列的默认值为 null 值。 |
结果集中的每一列返回一行。
注意
若要确保元数据列返回正确的信息,必须调用 ExecuteReader 并将 behavior
参数设置为 KeyInfo
。 否则,架构表中的某些列可能会返回默认、null 或不正确的数据。