Postgres 6.3 버젼 부터 PostgreSQL은 Procedural Language(PL)를 지원하기 시작했다. 이것은 PostgreSQL만의 특별한 경우로서 oracle 의 PL/SQL과 비유될 수 있는 기능으로 다음의 특징 혹은 기능을 가지고 있다. 1. PL/pgSQL 은 function 이나 trigger procedure 를 만드는데 사용되어 질 수 있다.2. SQL 문에 제어 구조를 추가할 수 있다. 3. 복잡한 계산을 구현할 수 있다. 4. user가 정의한 Type, Function, Operation을 상속할 수 있다. 5. 사용하기 쉽다. 6. PL/Python과 PL/TCL과 같은 프로시져 언어를 지원한다. 여섯 번째의 PL/Python과 PL/TCL은 각각 Python이라는 언어와 TCL이라는 언어를 사용하여 프로시져 함수를 사용할 수 있는 언어로 PL/Python과 PL/TCL에 대해서 더 자세히 알고 싶다면 PostgreSQL 사이트의 도규멘테이션을 살펴보길 바란다. 여기에서는 PL/pgSQL에 국한해서 설명하겠당. PL/pgSQL는 블록 지향 언어이다. 블록는 다음처럼 사용된다.
위의 형태가 가장 기초되는 형태이며 이 statements안에는 또 다른 서브 블록이 들어 올 수 있으면 이 서브 블록안의 변수는 들은 외부 블록으로부터 숨기기 위해 사용될 수 있다. 즉 외부에서는 서브 블록 내의 변수를 알 수가 없다. 이를 설명하기 전에 먼저 변수의 선언에 대해서 알아보자.
PL/pgSQL에서의 변수 선언은 'DECLARE' 부분에서 선언되고 초기화되는데 그 초기값을 줄 수 있고, 해당 블럭을 진입할 때마다 초기화 된다. 다음은 변수 선언의 예이다.
이처럼 변수의 선언 DECLARE 부분에서만 선언이 되어지는 것을 알 수 있다. 또 위에서 말한 것처럼 서브 블록에 대해서 외부 블록에서는 관여를 하지 않는다. 그리고 참고로 주석문을 처리하기 위해서 사용하는 것은 2종류가 있는데 위에서 사용하고 있는 --와 /* */ 이렇게 2종류가 사용된다. 그리고 변수의 선언에서 변수의 타입은 데이터 베이스가 지원하는 모든 타입을 사용할 수 있으며 다음의 문법에 맞게 사용된다. 변수이름 [ CONSTANT ] 변수형 [ NOT NULL ] [ { DEFAULT | := } 값 ];초기화되지 않은 변수는 자동으로 NULL이 할당되기 때문에 NOT NULL로 선언된 변수는 필히 초기화를 해주어야 한다. 다음은 몇가지 변수 선언 예이다.
| |||
'프로그래밍... > PostgreSQL' 카테고리의 다른 글
PostgreSQL 설치및 기본 사용법 (0) | 2010.01.08 |
---|---|
트리거 (Trigger) 예제 (1) | 2009.12.31 |
PostgreSQL의 PL/PgSQL 사용법 (0) | 2009.12.22 |
PostgreSQL 언어의 사용법 (PL/PgSQL) (0) | 2009.12.22 |
PostgreSQL 간단한 명령어 (0) | 2009.12.22 |