컴퓨터 공부/Advanced Database

[6월 5일 6교시] PL/SQL 2

려리군 2009. 6. 5. 17:08

Store Function의 사용 

쿼리 내에서도 사용 가능하다.


Dictionary for Stored Program

USER_OBJECTS

status : 컴파일 오류가 났을 때 INVALID(재컴파일이 요구될 때)... (찾아볼 것...)

USER_SOURCE : 함수의 소스를 볼 때 사용한다.

SELECT text FROM user_source where name='CHANGE_SALARY';


스칼라 데이터 타입

변수정의

예시)

v_gender CHAR(1);

v_count BINARY_INTEGER:=0;

상수정의

예시)

c_femail CONSTANT CHAR(1):='F'


복합 데이터 타입

TABLE : 1차원 배열같은 집합 형태. 동적으로 증가 가능. 

RECORD : 필드들로 저장된 관련된 데이터 아이템의 그룹. 각각은 이름과 데이터 타입을 가진다.


테이블 변수

1. type정의

TYPE ename_table_type IS TABLE OF varchar2(20) INDEX BY BINARY_INTEGER

2. 변수 선언

v_ename_tab ename_table_type;

3. 사용 방법

v_ename_tab(1):='SCOTT';


레코드 변수

1. type정의

TYPE emp_record IS RECORD (last_name varchar2(25), salary number(11,2));

2. 변수 선언     

v_emp_rec       emp_record;

3 사용방법

v_emp_rec.last_name := 'SCOTT';


%TYPE속성

변수나 데이터베이스의 컬럼의 데이터 타입을 제공한다.

%ROWTYPE속성

테이블(객체)의 한 줄을 표현하는 레코드 타입을 제공한다.


SCOPE 규칙

DECLARE x INTEGER; BEGIN ...
DECLARE y NUMBER; BEGIN ... END;
... END;


PL/SQL에서는 DML만 사용가능하다. (예외 : DYNAMIC SQL을 이용한다.)

PLSQL의 SELECT

SELECT 선택 목록 INTO 변수명|레코드 이름 FROM 테이블 WHERE 조건;

※ 오직 한 건의 행만이 나올 것을 예측하고 사용한다.


DBMS_OUTPUT.PUTLINE : 데이터베이스 화면에 뿌려주는 프로시저(디버깅용)

※ 이 명령을 보려면 set serveroutput on 해야 한다.