Postgresql
如何在 PostgreSQL 或 Greenplum 中檢索視圖列派生
我想在視圖中檢索列的派生表達式,並且我想從儲存過程中動態地執行它,所以 psql \d+ 或 pgAdmin 對我沒有用。
我可以從哪裡檢索這些資訊?全文在 pg_views 中,但我寧願不切分這個字元串來嘗試找到每個列表達式。
從文件
PostgreSQL 中的視圖是使用規則係統實現的。
所以本質上,它們被重寫為簡單的 SELECT 語句。目錄中沒有任何內容儲存列表達式。在內部,當您
\d
在視圖上執行時,它會呼叫pg_catalog.pg_get_viewdef
. 您無法使用系統目錄更進一步。您將不得不解析該查詢以獲取列表達式,可能使用類似libpg_query
.