我想要一个方法/代码片段来从 oracle 查询中提取列名和相应的表名。查询以及列名和表名在运行时会发生变化,并且通常会计算一些列名,这意味着它们被包装在函数中并具有别名。我尝试了不同的字符串标记技术,使用正则表达式根据 expeted 输出将其分离出来,但到目前为止,还没有运气!例如:
select mandate_name, investment_sub_team_name,
fn_sum(REG_INV_CMP_AUM) REG_INV_CMP_AUM,
fn_sum(NON_REG_INV_CMP_AUM) NON_REG_INV_CMP_AUM
from DM_SAI_VALUATIONS_STEP3
where position_interval_type = 'E'
and position_type = 'T'
group by mandate_name, investment_sub_team_name;
我希望列的输出为:
任务名称 投资子团队名称 fn_sum(REG_INV_CMP_AUM) fn_sum(NON_REG_INV_CMP_AUM)
上面的注释:我想要具有函数而不是别名的列
我希望表名的输出为: DM_SAI_VALUATIONS_STEP3 针对我上面列出的所有列
我无法编辑查询,因为它们是 xml 输出的一部分。所以,我无法更改别名。第二点是从查询中提取表名。请考虑这样一个事实,因为包含列和表的查询会有所不同,所以没有什么可以像字符串标记的位置等那样被硬编码。我正在寻找一种通用的方法来标记它们。因此,对于我期望的列输出,我也只需要表名。它总是在 from 子句中只指向一个表,因此提取它不会成为问题。
预期输出:
Column Name Table Name
----------- ----------
mandate_name DM_SAI_VALUATIONS_STEP3
investment_sub_team_name DM_SAI_VALUATIONS_STEP3
fn_sum(REG_INV_CMP_AUM) DM_SAI_VALUATIONS_STEP3
fn_sum(NON_REG_INV_CMP_AUM) DM_SAI_VALUATIONS_STEP3
任何帮助公关指针将不胜感激。