전체 저장 프로 시저 코드를 표시하는 방법은 무엇입니까?
저장 프로 시저 / 함수를 어떻게 봅니까?
원래 정의가없는 오래된 함수가 있다고 가정 해 보겠습니다. pg / psql에서 무엇을하는지보고 싶지만 그 방법을 알아낼 수없는 것 같습니다.
Postgres 버전 8.4.1 사용
pgAdmin을 사용하거나 pg_proc 을 사용 하여 저장 프로 시저의 소스를 가져옵니다. pgAdmin은 동일합니다.
\df+ <function_name>
에서 psql의 .
\ef <function_name>
psql에서. 편집 가능한 텍스트로 전체 기능을 제공합니다.
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
이것은 함수 핸들러에게 함수를 호출하는 방법을 알려줍니다. 구현 언어 / 호출 규칙에 따라 해석 된 언어, 링크 기호, 파일 이름 또는 기타에 대한 함수의 실제 소스 코드 일 수 있습니다.
\df
Postgres의 모든 저장 프로 시저를 나열하는 데 사용 합니다.
카탈로그 테이블을 빠르게 쿼리하고 pg_get_functiondef()
함수를 사용하는 방법이 궁금하다면 다음 은 샘플 쿼리입니다.
SELECT n.nspname AS schema
,proname AS fname
,proargnames AS args
,t.typname AS return_type
,d.description
,pg_get_functiondef(p.oid) as definition
-- ,CASE WHEN NOT p.proisagg THEN pg_get_functiondef(p.oid)
-- ELSE 'pg_get_functiondef() can''t be used with aggregate functions'
-- END as definition
FROM pg_proc p
JOIN pg_type t
ON p.prorettype = t.oid
LEFT OUTER
JOIN pg_description d
ON p.oid = d.objoid
LEFT OUTER
JOIN pg_namespace n
ON n.oid = p.pronamespace
WHERE NOT p.proisagg
AND n.nspname~'<$SCHEMA_NAME_PATTERN>'
AND proname~'<$FUNCTION_NAME_PATTERN>'
일반적으로 pgAdmin 과 같은 DB 관리자 응용 프로그램을 사용 하고 관심있는 객체를 찾은 다음 마우스 오른쪽 버튼을 클릭하여 "생성시 스크립트"또는 이와 유사한 방식으로 작성합니다.
관리 앱없이이 작업을 수행하려고합니까?
시스템에서 구성한 경우 phpPgAdmin으로 얻을 수도 있습니다.
1 단계 : 데이터베이스 선택
2 단계 : 찾기 버튼 클릭
3 단계 : 검색 옵션을 기능으로 변경 한 다음 찾기를 클릭합니다.
정의 된 함수 목록이 표시되며 이름으로 함수를 검색 할 수도 있습니다.이 답변이 다른 사용자에게 도움이되기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/3524859/how-to-display-full-stored-procedure-code
'program story' 카테고리의 다른 글
iOS9 : 유니버설 링크가 작동하지 않습니다. (0) | 2020.08.24 |
---|---|
Eclipse JUNO가 시작되지 않습니다. (0) | 2020.08.24 |
UITableView가 iPhone에서 맨 아래로 스크롤되었는지 확인하는 방법 (0) | 2020.08.24 |
Android-java- 객체 내 특정 값으로 객체 목록을 정렬하는 방법 (0) | 2020.08.24 |
Android Webview-웹 페이지가 기기 화면에 맞아야합니다. (0) | 2020.08.24 |