경진의 블로그

PL/SQL 본문

자바개발과정/오라클(Oracle)

PL/SQL

aith 2008. 6. 2. 11:55
SELECT, UPDATE, DELETE, INSERT 등을 통해 데이터를 조작하는 것을 알다
이런 조작문 여러 개를 묶어서, 그리고 더하고 빼고 하는 프로그램이 때때로 필요한데 이럴 경우 SQL문을 프로그램처럼 사용할 수가 있어야 하는데, 이것을 ORACLE에서 PL/SQL이란 것을 제공함으로써 가능하다

PL/SQL은 프로그램 문법을 가리키고 Procedure, Function, Trigger등에 주로 사용된다

기초 코딩법
DECLARE ~ BEGIN ~ END

DECLARE
[변수 선언]
BEGIN
[프로그램 코딩부분]
END;
/
마지막에 슬러쉬(/)를 사용해서 PL/SQL이 끝났음을 알린다

데이터 타입 사용

 TYPE  구분  변수 선언
 Boolean  참/거짓  b_1 boolean;
 b_1 boolena := True;
 Char  문자  s_1 char(10);
 s_1 char(10) := 'aa';
 Varchar2  s_1 varchar2(10);
 s_1 varchar2(10) := 'aa';
 Date  날짜  d_1 date;
 d_1 date := sysdate;
 Number  숫자  n_1 number(10,2);
 n_1 number(10,2) := 10.5

테이블의 컬럼 사용

PL/SQL은 데이터베이스 프로그램이고, 다른 일반프로그램과는 다르게 테이블이라는 집합체를 활용한다.
테이블에는 컬럼이라는 데이터타입이 선언된 항목들을 가지고 있고, 또 이 컬럼들을 항상 사용한다.
따라서 이미 데이터 타입과 크기가 선언된 컬럼들을 사용할 수 있다면 편리할 것이다. PL/SQL에서 이것을 제공한다.

사용방법은 변수명을 선언하고 해당 테이블을 적은 뒤에 [%ROWTYPE]이라고 붙여 사용한다.

sb_1 person%rowtype;

sb_1.empno := '99999';
sb_1.emp_name := '홍길동';

또는 테이블의 컬럼을 각각 선언해서 사용할 수도 있다.
s_empno person.empno%type := '99999';
s_emp_name person.emp_name%type := '홍길동';

변수 사용법

- 변수를 선언할 때는 끝에 꼭 세미콜론(;)을 붙여야 한다.
- 변수 선언시에 기본값(Default)을 줄 수 있다.
- 변수에 데이터를 넣을 때는 등호(=)를 사용하는 것이 아니고 기호(:=)를 사용한다.
- 변수에 데이터를 넣을 때도 항상 끝에는 세미콜론(;)을 붙여야 한다.
- 변수는 대.소문자 구분이 없다.

PL/SQL의 프로그램의 결과 또는 중간 진행상태 확인방법

사용자 삽입 이미지

옵션메뉴에서 환경 선택

사용자 삽입 이미지

serveroutput을 선택해서 값을 변경

 또는 "SET SERVEROUTPUT ON"이라고 명령어를 친다

declare
s_empno number(4);
s_ename varchar2(10);
s_msg varchar2(100) := '이것은 연습입니다.';
--변수 선언시 값을 넣는 예제
sb_emp emp%rowtype;
/*
%rowtype은 앞에 온 테이블명인 emp테이블의 모든 컬럼을 변수로 사용하기 위해 선언된 문장이다.
sb_emp.empno(number(4)) 혹은 sb_emp.ename(varchar2(10))
sb_emp << 인스턴스 테이블 데이타 유형을 참조함
*/

begin
s_empno := '7369';
s_ename := 'CLERK';
sb_emp.empno :=s_empno;
sb_emp.ename :=s_ename;
dbms_output.put_line('========================================');
dbms_output.put_line(s_msg);
dbms_output.put_line('사번 :'|| s_empno);
dbms_output.put_line('이름 :'|| s_ename);
dbms_output.put_line('사번2 :'|| sb_emp.empno);
dbms_output.put_line('이름2 :'|| sb_emp.ename);
dbms_output.put_line('========================================');
end;
/

사용자 삽입 이미지

결과화면

날짜와 시간 출력

begin
dbms_output.put_line('================================');
dbms_output.put_line('=                              =');
dbms_output.put_line('=                              =');
dbms_output.put_line('=   오늘일자 : '|| to_char(sysdate, 'YYYY/MM/DD'));
dbms_output.put_line('=   현재시간 : '|| to_char(sysdate, 'HH:MI:SS AM'));
dbms_output.put_line('=                              =');
dbms_output.put_line('=                              =');
dbms_output.put_line('================================');
end;
/

'자바개발과정 > 오라클(Oracle)' 카테고리의 다른 글

PL/SQL - For Loop 반복문  (0) 2008.06.02
PL/SQL - IF 조건 분기문  (0) 2008.06.02
PL/SQL  (0) 2008.06.02
환율 계산(바로 이전 Record의 값을 참조할 때)  (0) 2008.06.02
뷰 작성  (0) 2008.06.02
뷰(VIEW)  (0) 2008.05.28
Tag
0 Comments
댓글쓰기 폼