[英]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.