0
이름, 소유자, 소유자의 수퍼 유저 상태 및 테이블 스페이스와 같은 데이터베이스 정보를 가져 오는 select 문이 있습니다. PostgreSQL 버전이 9.2 미만인 경우에도 테이블 공간 데이터 위치를 가져올 수 있었지만 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
나는 적절한 응답을 얻습니다. 어떤 아이디어?
가, 감사합니다. 나는 단지 oid 대신에 pg_tablespace.oid를 사용하는 것을 생각하지 않았다. –