PL/SQL 문법 부 프로그램 (프로시저, 함수) 패키지&트리거

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
PowerBuilder Stored Procedure DW
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
PL/SQL.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Database Laboratory, Hong Ik University
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 7. 조건문.
제 9 장 구조체와 공용체.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
Heesang kim PL/SQL Heesang kim
Chapter09 JavaScript 구구단표 만들기
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Chapter 05 데이터베이스 프로그래밍.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
Lesson 9. 예외처리.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
Heesang kim PL/SQL 3 Heesang kim.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
14. 예외처리.
10장. 예외처리.
KIM HEESANG PL/SQL 2 KIM HEESANG
11장. 1차원 배열.
C#.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
MATLAB
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Lesson 2. 기본 데이터형.
ADO.NET (SqlConnection, SqlCommand)
2장. 변수와 타입.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
PL/SQL 코드 생성 및 수행 1 여러가지 환경 DOS에서 sqlplus Windows에서의 sqlplusw
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
8장. 조건에 따른 흐름의 분기. 8장. 조건에 따른 흐름의 분기 8-1 흐름의 분기가 필요한 이유 상황에 따른 프로그램의 유연성 부여 그림 8-1.
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
( Windows Service Application Debugging )
SQL Server 2000 세미나 View, SP &Trigger
10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스.
10 데이터 조작어 데이터 조작어 데이터 입력 데이터 수정 데이터 삭제 MERGE 트랜잭션 관리 시퀀스.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
Flow Diagram IV While.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
 6장. SQL 쿼리.
Visual Basic .NET 기초문법.
6 객체.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
Presentation transcript:

PL/SQL 문법 부 프로그램 (프로시저, 함수) 패키지&트리거

PL/SQL 문법

context PL/SQL의 특징 PL/SQL의 구조 PL/SQL의 자료 형과 선언 PL/SQL의 흐름제어(조건문, 반복문) PL/SQL내에서의 SQL문 커서(Cursor) 오류 처리

PL/SQL 특징(1) Procedural Language/SQL의 약자 3GL의 프로시저의 구성과 SQL(4GL)의 장점을 결합 추가 기능 변수와 형의 선언 IF-THEN-ELSE문이나 루프와 같은 제어 구조 프로시저와 함수

PL/SQL 특징(2) 오라클 데이터베이스 서버 클라이언트 프로그램 SQL

PL/SQL 구조(1) 기본적인 단위는 블록 각 블록은 논리적인 작업 단위 문법 DECLARE BEGIN EXCEPTION 블록의 메인섹션이고, 반드시 필요한 섹션이다. */ EXCEPTION /* 예외 처리부 - 에러 처리 문장이 여기에 온다. */ END;

PL/SQL 구조(2) 간단한 작성과 실행

PL/SQL 구조(3) 출력은 DBMS_OUTPUT 패키지가 담당 패키지 안에 dbms_output.put_line 프로시저 사용 출력을 SQL*Plus에서 보려면 SET SERVEROUTPUT ON을 먼저 실행 orahome/sqlplus/admin/glogin.sql에서 set serveroutput on 입력

PL/SQL 구조(4)

PL/SQL 구조(5)

PL/SQL 자료 형 문자형 : CHAR, VARCHAR2 수치형 : NUMBER 날짜형 : DATE 기타 : %TYPE, %ROWTYPE

선언부 PL/SQL에서 사용되는 모든 변수와 상수, 커서를 선언하는 부분 문법 DECLARE 변수명 [CONSTANT] 변수형 [NOT NULL] [:= DEFAULT|expr] ; BEGIN

변수 선언 한 줄에 하나의 변수만 선언 가능 예제 주석문 DECLARE customer_no NUMBER :=100; 한 줄 단위의 주석은 ‘--’ 한 줄 이상의 주석은 ‘/*’시작하고 '*/'로 끝남 DECLARE customer_no NUMBER :=100; customer_name VARCHAR2(20); customer_addr customer.c_addr%TYPE; BEGIN

상수 선언 예제 일단 선언된 상수에 대해서는 실행부에서 값을 다시 지정할 수 없다.

PL/SQL의 흐름제어 조건문 IF문 CASE문 반복문 LOOP문 WHILE문 FOR문

조건문 – IF(1) 조건을 BOOLEAN 값으로 평가 IF - THEN IF 조건 THEN 실행문 -- 조건을 만족하면 실행문을 실행 END IF ;

조건문 – IF(2) IF - THEN - ELSE IF 조건 THEN 실행문 1 ; ELSE 실행문 2 ; END IF ; IF - THEN - ELSIF - ELSE IF 조건 1 THEN 실행문 1 ; ELSIF 조건 2 THEN 실행문 2 ; ELSE 실행문 3 ; END IF ;

조건문 – IF(3)

조건문 – CASE(1) 오라클 9i 이후 추가된 구문 조건이 여러 개 인 경우 유용 형식 1 형식 2 case 값 when 표현식 then 실행문 [when 표현식 then 실행문] [else 실행문] case when 조건 then 실행문 [when 조건 then 실행문] [else 실행문]

조건문 – CASE(2)

조건문 – CASE(3)

반복문 – LOOP(1) 문법 LOOP ... EXIT WHEN 조건; END LOOP;

반복문 – LOOP(2)

반복문 - WHILE LOOP(1) 문법 WHILE 조건 LOOP ... END LOOP;

반복문 - WHILE LOOP(2)

반복문 - FOR LOOP(1) 문법 FOR 루프변수 IN [REVERSE] 하한..상한 LOOP ... END LOOP ;

반복문 - FOR LOOP(2)

Embedded SQL PL/SQL내에서 사용될 수 있는 SQL문 PL/SQL내에서 사용될 수 없는 SQL문 DML문 트랜잭션 제어 명령어(COMMIT, ROLLBACK) PL/SQL내에서 사용될 수 없는 SQL문 DDL문 * DBMS_SQL Package를 사용하여 처리 * 기존의 SQL문법 그대로 사용 (SELECT의 경우제외)

Select문의 사용(1) PL/SQL내에서 Select문은 데이터 추출에 사용 구조 SELECT column_list INTO variable_list FROM table WHERE condition;

Select문의 사용(2)

Select문의 사용(3) Select 문의 잘못된 사용 예1

Select문의 사용(4) Select 문의 잘못된 사용 예2

Insert문의 사용(1)

Insert문의 사용(2)

Update문의 사용(1)

Update문의 사용(2)

Delete문의 사용(1)

Delete문의 사용(2)

Delete문의 사용(3)

Delete문의 사용(4)

커서 선언 커서란? 커서의 종류 커서의 속성 명시적 커서 암시적 커서 %FOUND : 가장 최근에 인출한 행이 있으면 TRUE %NOTFOUND : 가장 최근에 인출한 행이 없으면 TRUE %ROWCOUNT : 가장 최근에 인출한 행의 개수 %ISOPEN : 커서가 열려있으면 TRUE

명시적 커서(1) 커서를 관리하는 데 필요한 모든 코드를 사용자가 직접 작성 query 결과를 첫 번째 행부터 차례대로 처리 가능 현재 처리중인 행을 추적 커서의 Life-cycle은 사용자의 제어에 달려있으며, 결과 셋 내의 레코드 접근에 대한 세부적인 수준의 제어 가능 여러 행 질의에 의해 반환되는 행 집합을 활성 집합이라 하고 활성집합의 크기는 검색조건을 만족하는 행수와 같음

명시적 커서(2) 커서의 선언 커서의 Life-cycle select * from branch; cursor [RETURN 리턴타입] IS 필요한 SELECT문 OPEN : 커서가 반환될 값 들 중 첫 번째 열을 가리킴 FETCH : 현재 열을 읽어 들인 후, 다음 열로 커서 이동 CLOSE : 커서 종료 Br100 서울중구 서울시 중구 Br200 서울용산 서울시 용산구 Br300 경기구리 경기도 구리시 Br400 경기성남 경기도 성남시 select * from branch; cursor

명시적 커서(3)

명시적 커서(4)

명시적 커서 – 파라미터 사용(1)

명시적 커서 – 파라미터 사용(2)

명시적 커서 – 파라미터 사용(3)

명시적 커서 – 파라미터 사용(4)

암시적 커서(1) 암시적 커서란? 암시적 커서 모든 sql문에는 관련된 개별 커서가 존재 sql문을 실행하면 pl/sql은 암시적 커서를 작성하여 자동관리 암시적 커서 Embedded SQL 결과 셋 Cursor For Loop

암시적 커서(2) * Embedded SQL 결과셋 생성시 사용되는 커서를 암시적으로 사용한 예

암시적 커서(3)

암시적 커서(4)

암시적 커서(5) * Cursor For Loop를 사용한 암시적 커서의 예

오류 처리 PL/SQL의 오류처리 메커니즘 -> 예외(Exception) 예외 발생시 프로그램의 제어가 블록의 예외 처리부로 넘어간다. 예외의 종류 미리 정의된 예외 사용자 정의 예외 PRAGMA EXCEPTION_INIT

예외 처리 형식 문법 : 실행부 내의 EXCEPTION 절 BEGIN … EXCEPTION WHEN 예외1[OR 예외2 ... ] THEN 문장; ... [WHEN 예외3 [OR 예외4 ... ] THEN ... ] [WHEN OTHERS THEN END;

예제 실행 화면

예제 실행 화면

미리 정의된 예외 미리 정의된 예외 NO_DATA_FOUND TOO_MANY_ROWS ZERO_DIVIDE PL/SQL 코드에서 자주 발생하는 오류 선언부에 선언이 필요없음 실행중 정의된 오류 발생시 예외부로 자동 분기 NO_DATA_FOUND TOO_MANY_ROWS ZERO_DIVIDE INVALID_NUMBER INVALID_CURSOR OTHERS

사용자 정의 예외 사용자 정의 예외 ☞ 명시적으로 예외 발생(EXCEPTION절로 분기) 사용자가 설정한 조건 선언부에서 예외에 대한 선언이 필요 실행부에서 RAISE문을 사용하여 예외 발생 ☞ 명시적으로 예외 발생(EXCEPTION절로 분기)

사용자 정의 예외 DECLARE A EXCEPTION : BEGIN … RAISE A: ... EXCEPTION WHEN A THEN END ; 예외 A가 선언 예외 A가 발생 여기에 있는 어떤 코드도 실행되지 않는다. 제어가 예외 핸들러에 전달.여기의 코드가 실행

예제 실행 화면

PRAGMA EXCEPTION_INIT 미리 정의되지 않은 예외 미리 정의된 예외를 제외한 모든 오류 선언부에 선언이 필요 실행중 오류 발생시 예외절로 자동 분기 DECLARE A EXCEPTION; PRAGMA EXCEPTION_INIT(A,-1400); BEGIN …. EXCEPTION WHEN A THEN 선언된 예외 이름과 오라클 서버 오류 번호를 결합하는 선언문

예제 실행화면(1)

예제 실행화면(2)