맨위로가기

PL/pgSQL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

PL/pgSQL은 PostgreSQL의 표준 절차적 언어이다. SQL/PSM과 유사하지만, 오라클의 PL/SQL에서 영향을 받아 예외 처리 방식, 경고 처리, 변수 선언 방식 등에서 차이점을 보인다. PL/pgSQL은 SQL 및 PL/pgSQL 스크립트의 문서화를 지원하며, 다양한 문서 생성 도구를 사용할 수 있다. PostgreSQL은 PL/pgSQL 외에도 PL/PSM, PL/Java, PL/Perl, plPHP, PL/Python, PL/R, PL/Ruby, PL/sh, PL/Tcl 등 다양한 절차적 언어를 지원한다.

더 읽어볼만한 페이지

  • PostgreSQL - 아마존 레드시프트
  • PostgreSQL - DBeaver
    DBeaver는 2010년 이반 포포프가 개발한 오픈 소스 데이터베이스 관리 도구로, 다양한 데이터베이스 시스템 지원, 사용자 친화적 인터페이스, 여러 버전 제공, 다양한 운영체제 및 언어 지원, SQL 쿼리 실행 및 편집, 데이터 브라우징 및 편집, 데이터베이스 구조 탐색 및 편집 등 다양한 기능을 제공한다.
  • 데이터 중심 프로그래밍 언어 - 마이크로소프트 액세스
    마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다.
  • 데이터 중심 프로그래밍 언어 - SQL
    SQL은 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 설계된 표준 프로그래밍 언어로서, 데이터 정의어, 데이터 조작어, 데이터 제어어를 포함하는 다양한 명령어 문법을 제공하며 ANSI와 ISO에 의해 표준으로 채택되었다.
  • SQL - 사용자 정의 함수
    사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다.
  • SQL - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
PL/pgSQL - [IT 관련 정보]에 관한 문서
기본 정보
PostgreSQL 코끼리 로고
로고
이름PL/pgSQL
종류프로그래밍 언어
개발
디자이너얀 비크
개발자PostgreSQL 글로벌 개발 그룹
최초 출시일1998년 10월 30일
특징
기타 정보
웹사이트PL/pgSQL 공식 문서
영향을 받은 언어PL/SQL, 에이다

2. PL/pgSQL의 특징

PL/pgSQL은 PostgreSQL을 위해 설계된 절차적 프로그래밍 언어로서, SQL의 선언적 특성과 절차적 프로그래밍의 제어 구조를 결합한 것이 특징이다.

2. 1. SQL/PSM과의 비교

SQL/PSM는 ISO 표준에 의해 규정되며, 오라클의 PL/SQL 및 PL/pgSQL로부터 영감을 받아 몇 가지 차이점이 있다. PL/pgPSM 기여 모듈은 표준을 구현한다. PL/pgSQL과 다른 PSM의 주요 특징은 다음과 같다.[1][14]

  • 예외 처리기는 서브루틴(계속 처리기)이다.
  • 경고는 예외처럼 처리될 수 있다.
  • 변수 선언은 SQL 쿼리 결과에 기반해야 한다.


오라클 PL/SQL,[15] PostgreSQL PL/pgSQL 및 ISO SQL/PSM[16] 세 언어는 원래 Ada 프로그래밍 언어에서 파생되었다.

2. 2. 예제



CREATE FUNCTION sales_tax(subtotal real) RETURNS real AS $$

BEGIN

RETURN subtotal * 0.06;

END;

$$ LANGUAGE plpgsql;



```

주어진 코드는 PL/pgSQL로 작성된 `sales_tax`라는 함수를 정의한다. 이 함수는 `subtotal`이라는 실수(real) 값을 입력받아, 입력값의 6%를 계산하여 반환한다.

3. PostgreSQL의 다른 절차적 언어

PL/pgSQL은 PostgreSQL의 표준 절차적 언어이지만, 이 외에도 PL/PSM, PL/Java, PL/Perl, plPHP, PL/Python, PL/R, PL/Ruby, PL/sh, PL/Tcl 등 다양한 절차적 언어를 사용할 수 있다.

3. 1. 지원되는 언어 목록

언어설명외부 링크
PL/PSMSQL/PSM 준수[http://pgfoundry.org/projects/plpsm/ PL/PSM]
PL/JavaJava[http://gborg.postgresql.org/project/pljava/projdisplay.php PL/Java]
PL/PerlPerl[http://www.postgresql.org/docs/current/interactive/plperl.html PL/Perl]
plPHPPHP[http://www.commandprompt.com/community/plphp/ plPHP]
PL/PythonPython[http://www.postgresql.org/docs/current/interactive/plpython.html PL/Python]
PL/RR 언어[http://www.joeconway.com/plr/ PL/R]
PL/RubyRuby[http://raa.ruby-lang.org/project/pl-ruby PL/Ruby]
PL/shsh[http://plsh.projects.postgresql.org/ PL/sh]
PL/TclTcl[http://www.postgresql.org/docs/current/interactive/pltcl.html PL/Tcl]


4. 문서화 지원

PL/pgSQL은 스크립트 문서화를 위한 공식적인 의사 언어를 포함하고 있다. 문서 생성기를 이용해 이러한 문서로부터 하이퍼텍스트 형태의 문서를 생성할 수 있다. PL/SQL이 이러한 도구 중 일부를 지원하므로, PL/pgSQL도 전체 또는 부분적으로 지원할 것으로 예상된다.

4. 1. 문서 생성 도구

SQL 및 PL/pgSQL 스크립트에는 문서화를 위한 공식적인 의사 언어를 포함할 수 있다. 이 문서는 데이터를 추출하고 하이퍼텍스트를 생성하는 외부 도구인 문서 생성기에 의해 처리된다. PL/SQL이 이러한 도구 중 일부를 지원하므로 PL/pgSQL도 전체 또는 부분적으로 지원할 것으로 예상된다.[1]

도구전체 PL/pgSQLJavadoc 스타일기타 스타일사용하는 PL/pgSQL 프로젝트
Document! X
Natural Docs
ROBODoc



기타 문서 도구: Doxygen, DBScribe, HyperSQL, Universal Report.[1]

참조

[1] 웹사이트 PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4 https://www.postgres[...] PostgreSQL Global Development Group 2012-01
[2] 간행물 SQL standard features PostgreSQL
[3] 웹사이트 PL/pgSQL – SQL Procedural Language https://www.postgres[...] PostgreSQL 2007-11-15
[4] 웹사이트 Procedural Languages https://www.postgres[...] 2024-05-09
[5] 간행물 Docs PostgreSQL
[6] 간행물 Docs PostgreSQL
[7] project Gborg PostgreSQL
[8] manual SQL/PSM https://postgres.cz/[...] PostgreSQL 2008-05-20
[9] 간행물 Community Command prompt
[10] 간행물 PL/R http://www.joeconway[...] 2005-02-25
[11] project PL/Ruby https://github.com/k[...] Ruby lang 2018-11-23
[12] 간행물 marijnh/Postmodern https://github.com/m[...] 2024-06-01
[13] 간행물 Docs PostgreSQL
[14] mailing list Hackers PostgreSQL
[15] 간행물 PL/SQL Language Reference Oracle
[16] 간행물 Stored procedures http://cdn.oreillyst[...] O’Reilly
[17] 웹사이트 PL/pgSQL - SQL手続き言語 http://www.postgresq[...] 2009-01-24
[18] 웹인용 PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4 https://www.postgres[...] PostgreSQL Global Development Group
[19] 간행물 SQL standard features PostgreSQL
[20] 웹인용 PL/pgSQL – SQL Procedural Language https://www.postgres[...] PostgreSQL 2007-11-15
[21] 웹인용 Procedural Languages https://www.postgres[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com