일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바 채팅
- async
- TCP 채팅
- 빅분기 필기
- 자바스크립트 undefined
- xml 파싱 방법
- 원씽 책
- 빅분기
- 노트패드 줄바꿈
- 책 원씽
- 원씽 독후감
- TCP Socket
- 원씽 후기
- 간단한 채팅 프로그램
- 자바 채팅 프로그램
- The OneThing
- 동기식 비동기식
- async false
- 빅데이터분석기사 독학
- ajax 동기식
- ajax 비동기식
- 원씽 내용
- 빅분기 독학
- Notepad++ 줄바꿈
- dom sax 차이점
- 빅데이터분석기사 필기
- dom sax 장단점
- Notepad 줄바꿈
- 노트패드++ 줄바꿈
- 빅데이터분석기사
- Today
- Total
SooBlending
[Oracle] PL/SQL 본문
<PL/SQL>
- SQL의 장점은 쿼리문 하나로 원하는 데이터를 검색 조작할 수 있다는 점인데,
SQL문 자체는 비절차적 언어이기 때문에 몇개의 쿼리문 사이에 어떠한 연결
및 절차성이 있어야 하는 경우는 사용할 수 없다.
- 이 점을 극복하기 위해 SQL언어에 절차적인 프로그래밍 언어를 가미해 만든
것이 PL/SQL
<PL/SQL구조>
DECLARE SECTION (선언부)
- PL/SQL에서 사용하는 모든 변수나 상수를 선언.
EXECUTABLE SECTION (실행부)
- 절차적형식으로 SQL을 실행할 수 있도록 절차적요소인 제어문,반복문
,함수정의등 로직기술.
EXCEPTION SECTION (예외처리)
- 실행 중 발생되는 에러를 해결하기 위한 문장으로 구성.
-------------------------------------------------------
<변수선언>
변수명 자료형;
vempno number(4);
vempno2 emp.empno%type;
-- emp테이블의 empno컬럼이 갖는 자료형을 참조하겠다.
<레퍼런스 변수>
- %TYPE (한 개의 컬럼), %ROWTYPE (한 행의 모든 컬럼을 참조)
vemp emp%ROWTYPE;
---> emp테이블이 갖는 모든 컬럼의 자료형을 참조하겠다
-------------------------------------------------------
문제) 화면 콘솔에 '안녕, PL/SQL~!!'을 출력하시오.
declare -- 선언부
-- (실행부에 필요한) 변수 선언
begin -- 실행부 {
-- SQL문
dbms_output.put_line('안녕, PL/SQL~!!');
end; -- }
/
==> 화면 출력 설정 : set SERVEROUT on
----> 기본값: SERVEROUT off
문제) 7788사번을 갖는 사원의 사원번호와 사원명, 급여를 화면에 출력.
---> emp_info.sql
------------------------------------------------------
<PL/SQL>
declare -- 선언부
실행부에서 사용할 변수선언;
begin -- 실행부 시작
SQL문(DQL,DML)
select empno, ename, sal into 변수명1, 변수명2, 변수명3
from emp;
insert문, delete문, update문
조건문, 반복문
함수호출
end; -- 실행부 끝
/
==> if else나 else if도 사용 할 수 있다.. 단, else if => elsif
<조건문>
1. if문
형식)
if [(] 조건식 [)]
then -- {시작
실행할 문장;
end if; -- }끝
----> if_test.sql
----> 두 수를 비교해서 크다, 작다를 출력!!
2. if~else문
형식)
if 조건식
then 조건식 결과가 참일때 실행할 문장;
else 조건식 결과가 거짓일때 실행할 문장;
end if;
문제) 특정사원이 커미션을 받는지 안 받는지 구분해서 출력하시오.
예1: 사번7788은 SCOTT사원이고 커미션을 받지 않습니다.
예2: 사번7654은 MARTIN사원이고 커미션을 1400 받습니다.
==> if_else_test.sql
3. if~elsif~else문
형식)
if 조건식1
then 조건식1결과 참일때 실행할 문장;
elsif 조건식2
then (조건식1에 거짓이고) 조건식2결과 참일때 실행할 문장;
elsif 조건식3
then (조건식1,2에 거짓이고) 조건식3결과 참일때 실행할 문장;
else 조건식 1,2,3에 거짓일때 실행할 문장;
end if;
'Programming > DataBase' 카테고리의 다른 글
[Oracle] PL/SQL 프로시저/함수 (Procedure/Function) (0) | 2017.11.10 |
---|---|
[Oracle] PL/SQL 반복문 (Loop) (for/while) (0) | 2017.11.10 |
[Oracle] 시퀀스(Sequence) (0) | 2017.11.09 |
[Oracle] 뷰 (View) 단일뷰/복합뷰 (0) | 2017.11.08 |
[Oracle] 제약조건 (Constraint) (2) | 2017.11.07 |