簡體   English   中英

如何獲取查詢Oracle SQL返回的假設表的列名

[英]How to get column names of a hypothetical table returned by a query oracle sql

假設我有一個復雜的SQL查詢,例如

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

我可以進行什么查詢來獲取運行該查詢的表的標題?

筆記:

我已經檢查了Oracle查詢以獲取列名 ,但這似乎無濟於事,因為我沒有嘗試從現有表中查找名稱*。

*我實際上無法創建此表,因此使其無法選擇然后再運行普通查詢是不可行的。

您可以使用DBMS_SQL程序包的DESCRIBE_COLUMNS過程

這是關鍵步驟:打開游標,解析並執行。 最后調用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);

上面查詢的第一列的示例輸出是

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

完整示例參見Oracle文檔

或者,您可以使用JDBC resultSet.getMetaData()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM