如何在 C#/(ADO?).NET 2.0 中查询(oracle)数据库表结构

cha*_*r m 2 c# ado.net oracle10g

我想获取所有表列的表元数据。像 string(varchar2)/int/float/datetime 类型和字符串长度等。

干杯! -马蒂

Tho*_*que 5

对于您可以访问的所有表:

select * from all_tab_columns
Run Code Online (Sandbox Code Playgroud)

对于当前架构中的所有表:

select * from user_tab_columns
Run Code Online (Sandbox Code Playgroud)

这是特定于 Oracle 的,但有一种更通用的方法来检索架构信息:DbConnection.GetSchema方法:

schema_owner = "the_owner"; // or null
table_name = "the_table"; // or null
column_name = "the_column"; // or null
DataTable columns = connection.GetSchema("Columns", new string[] { schema_owner, table_name, column_name });
Run Code Online (Sandbox Code Playgroud)

结果表包含与条件匹配的所有可用列信息。

对于所有可用架构元数据的列表,您可以将GetSchemawithDbMetaDataCollectionNames.MetaDataCollections作为参数调用。