초본데여..
PL/SQL 야기가 많이 있는뎅...
이게 무어죠?
글구 이걸 쓸려면여?
모가 필요하고 그건 어디서 구하는 건지..
댕기다 댕기다 PL/SQL에 대한 건 대충 감이 잡히는데..
흑흑.. 초보는 지금 힘들구 지치고..
도와주세요.. 고수님덜..
그리고 미리 감사의 절을 드립니다....... 꾸우~~뻑...
sql 프로시져 언어라고 하지요.
rdbms 내부에서 사용할 수 있는 프로그램 언어로서 rdbms의 기본 sql 만으로는 원하는 작업을 할 수 없을때, 방법은 두가지겠지요.
1. 응용프로그램이 그 일을 하든지,
2. rdbms 서버가 그 일을 해서 결과를 응용프로그램으로 넘겨주든지.
바로 2.번 역활을 하는 언어입니다.
예를 들어서 두개의 텍스트 배열 필드가 있다고 가정했을 때,
그 자료가 한 필드는 {"저자", "역자"} 이고, 다른 필드는 {"어거스틴", "성염"} 경우에,
만일을 응용프로그램에서 {"저자:어거스틴", "역자:성염"} 이런식으로 표현해야할 경우에,
select concat_textarr(f1,f2) from ....
이런식의 함수가 하나 있으면 응용프로그램이 무진장 가벼워지겠지요. 이때, concat_textarr(text[], text[]) 함수를 하나 만들어야하는데, 이때, plpgsql 언어를 사용하면 편합니다. 물론 plpython, 이나, plperl 로도 가능하기도 하겠지요.
또 한 예로 트리거를 들지요.
트리거란 특정 테이블에 자료가 삽입/변경/삭제 되었을 경우에, 다른 테이블에도(물론 그 자신의 다른 필드일 수도 있습니다) 그 변경에 따라 자료가 변경되어야할 경우에 사용하는 기능입니다.
매출테이블이 있고, 일매출통계테이블이 있을 경우에, 매출테이블에 자료가 입력되면, 일매출통계테이블을 해당 날의 자료를 업데이트해야겠지요.
이럴때, 응용프로그램 이것을 구현한다는 것은 바람직하지 않습니다. (자료 무결성을 해치는 위험성이 많습니다) 그래서, 트리거를 사용하지요. 이 트리거 기능을 plgsql 언어로 구현합니다.
자세한 것은 http://database.sarang.net/database/postgres/plpgsql/ch24.html 문서를 참조하셔도 좋을 것같습니다. 좀 오래된 문서인지라. 아무튼 최신 정보는 메뉴얼을 참조하시고.