0
我有一個選擇語句,用於撤回數據庫信息,如名稱,所有者,所有者的超級用戶狀態和表空間。對於小於9.2的Postgresql版本,我還能夠獲取表空間數據位置,但使用9.2,他們已經改變了它,以便它是一個函數調用。我當前的查詢是:Postgresql/SQL在選擇查詢中運行系統目錄功能
SELECT pg_database.datname as Database_Name, pg_authid.rolname as Database_Owner,
pg_authid.rolsuper as IsSuperUser, pg_tablespace.spcname as TableSpaceName,
pg_catalog.pg_tablespace_location(oid) as TableSpaceLocation
FROM pg_database
JOIN pg_authid on pg_database.datdba = pg_authid.oid
CROSS JOIN pg_tablespace
WHERE datistemplate = false
AND pg_database.dattablespace = pg_tablespace.oid;
其中函數調用是SELECT語句的最後一部分。但我發現了一個錯誤:
ERROR: column "oid" does not exist
LINE 3: pg_catalog.pg_tablespace_location(oid) as TableSpaceLoca...
當我嘗試和運行這個,我不知道如何讓表空間的位置,因爲這查詢的一部分。如果我自己運行此功能:
SELECT pg_catalog.pg_tablespace_location(oid) as "Location"
FROM pg_catalog.pg_tablespace
我得到了正確的響應。有任何想法嗎?
這工作,謝謝。我沒有想到使用pg_tablespace.oid而不是僅僅是oid。 –