【问题标题】:get column name in addition to the result (oracle)获取除结果之外的列名(oracle)
【发布时间】:2020-10-26 15:25:24
【问题描述】:

我在 c#(asp.net 环境)中有一个动态运行 ORACLE 查询的程序。 查询可以是:

select * from app_costumers;
select a.first_name, a.last name, b.salary from app_costumers inner join app_costs b on a.id = b.id;

(如您所见,这有时是关于一个表,有时是更多。 有时写列名,有时只在“*”中使用)。

到目前为止,我只返回了结果, 但现在我需要返回结果列的名称。

你知道怎么做吗? (我不能使用这样的东西:

SELECT column_name FROM user_tab_cols WHERE table_name = UPPER ('app_costumers');

因为它只适合一张桌子......)。

谢谢

【问题讨论】:

  • USER_TAB_COLS 将仅显示您的会话用户拥有的表/列(是架构名称)。 ALL_TAB_COLS 将包含您的会话用户拥有的所有权限,包括它自己的表。 DBA_TAB_COLS 将显示每个表的列。但是,根据您用于运行查询的 C# 库,您应该能够看到结果集中返回的查询列的名称/别名。

标签: c# asp.net oracle select


【解决方案1】:

可以使用 reader.GetName(i),例如:

var reader = cmd.ExecuteReader();

var columns = new List<string>();

for(int i=0;i<reader.FieldCount;i++)
{
   columns.Add(reader.GetName(i));
}

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 2018-06-28
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2022-12-15
    • 2023-03-22
    相关资源
    最近更新 更多