PL/SQL
PL/SQL, Procedure Language / Structured Query Language
PL/SQL은 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어. 주로 자료 내부에서 SQL 명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는 데 쓰인다. SQL보다 속도가 미세하게 빠르며 SQL에서는 불가능한 제어문, 반복문 사용이 가능하다.
※ SET SERVEROUTPUT 변수설정
DBMS_OUTPUT.PUT_LINE에 의한 출력여부를 지정하며, DBMS_OUT할 수 있는 줄의 길이값은 32767바이트이다.
Anonymous PL/SQL
Stored Procedure 또는 Function
오라클에서 생성된 Stored Procedure는 다른 aplication(JAVA, .NET, VC++)에서 호출하는게 가능하다.
* 주의: 프로시저에서 2개이상 INSERT 문을 추가하는 경우 하나의 INSERT문에서 에러가 발생하면 자동으로 모두 ROLLBACK 처리 된다. 그리고 프로시저는 자동 커밋되지 않으므로 반드시 INSERT, UPDATE, DELETE 에서 COMMIT 해야함
Stored Procedure와 Function의 차이점
Stored Procedure는 리턴값이 있을 수도 있고 없을 수도 있다. (IN MODE, OUT MODE, IN OUT MODE)
Function은 반드시 그 결과값을 리턴한다.
Stored Procedure
Function
프로시저 호출
CURSOR를 활용한 저장 프로시저
하나의 레코드가 아닌 여러행으로 구성된 작업영역에서 SQL 결과를 저장하기 위해 커서를 사용
SYS_REFCURSOR
쿼리실행 결과를 저장하기 위한 자료형이며 테이블의 여러행을 반복적으로 조회하기 위해 사용한다.
제어문
IF, 조건문