Postgresql

如何在 PostgreSQL 或 Greenplum 中檢索視圖列派生

  • January 31, 2017

我想在視圖中檢索列的派生表達式,並且我想從儲存過程中動態地執行它,所以 psql \d+ 或 pgAdmin 對我沒有用。

我可以從哪裡檢索這些資訊?全文在 pg_views 中,但我寧願不切分這個字元串來嘗試找到每個列表達式。

文件

PostgreSQL 中的視圖是使用規則係統實現的。

所以本質上,它們被重寫為簡單的 SELECT 語句。目錄中沒有任何內容儲存列表達式。在內部,當您\d在視圖上執行時,它會呼叫pg_catalog.pg_get_viewdef. 您無法使用系統目錄更進一步。您將不得不解析該查詢以獲取列表達式,可能使用類似libpg_query.

引用自:https://dba.stackexchange.com/questions/162769