我需要一種方法來從SELECT查詢(遊標)中獲取列的「描述」,例如它們的名稱,數據類型,精度,比例等,在PostgreSQL(或更好的PL/pgSQL)中。如何在PostgreSQL中描述SQL查詢的列(獲取它們的名稱,數據類型等)
我正在從Oracle PL/SQL過渡,我可以使用內置過程dbms_sql.describe_columns獲取此類描述。它返回一個記錄數組,每個記錄對應給定(已解析)遊標的每一列。
這樣的查詢的一個例子:
select col1 from tab where col2 = :a
我需要一個API(或解決方法)可以被稱爲像這樣(希望):
select query_column_description('select col1 from tab where col2 = :a');
,將返回類似於:
{{"col1","numeric"}}
爲什麼?我們構建這些查詢成爲單獨列的視圖。例如,視圖的查詢將如下所示:
select (select col1 from tab where col2 = t.colA) as col1::numeric
from tab_main t
類似的東西可用psycopg2(https://stackoverflow.com/questions/10252247/how-do-i-get-a-list-of-column-names-from-a-psycopg2-cursor),但我希望我能保持在PL/pgSQL中,所以我不必爲此處理(安裝/學習/等)psycopg2(也許還有一些其他很酷/我需要發現的功能) –
有沒有內置在服務器端。在客戶端,我知道JDBC可以做到這一點,我也猜測ODBC。我假設這兩個接口都使用[SPI](https://www.postgresql.org/docs/current/static/spi-interface-support.html)。 –
如果你沒有問題,請提出答案。謝謝。 – Indent