如何获取查询oracle sql返回的假设表的列名

问题描述 投票:0回答:1

假设我有一个复杂的SQL查询,如

select *
from mydbadmin.tablename
inner join mydbadmin.othertablename
on mydbadmin.tablename.id = mydbadmin.othertablename.id
where mydbadmin.tablename.y = 2

我可以使用什么查询来获取运行此查询的表的标题?

笔记:

我检查了Oracle query to fetch column names,但这似乎没有帮助,因为我不是想从现有的表中找到名字*。

*我无法实际创建此表,因此制作它然后运行普通查询不是一个选项。

sql oracle
1个回答
2
投票

您可以使用DBMS_SQL包的DESCRIBE_COLUMNS过程

以下是关键步骤:打开游标,解析并执行。最后调用qazxsw poi,它返回qazxsw poi中的定义

describe_columns

上述查询的第一列的示例输出是

DBMS_SQL.DESC_TAB

完整的例子见 c := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(c, q'[SELECT 'x' col1, sysdate col2, 1 col3 FROM dual]', DBMS_SQL.NATIVE); d := DBMS_SQL.EXECUTE(c); DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);

作为替代方案,您可以使用JDBC col_type = 96 col_maxlen = 1 col_name = COL1 col_name_len = 4 col_schema_name = col_schema_name_len = 0 col_precision = 0 col_scale = 0 col_null_ok = true 方法。

© www.soinside.com 2019 - 2024. All rights reserved.