분류 전체보기 119

PL/SQL 예외처리

컴파일 에러 - PL/SQL 블록이 PARSE 되는 동안 오타 등으로 인해 발생되는 에러런타임 에러 - PL/SQL 블록이 실행되는 동안에 발생되는 에러, 이 런타임 에러를 오라클에서 예외라고 부름 오라클의 예외 종류 - 오라클에서 미리 제공하는 오라클 예외 - 사용자에 의해 정의되는 사용자 정의 예외 오라클 예외 : 오라클이 정의한 상황에서 자동적으로 발생 - 이름이 정해진 예외 : Predefined ORACLE Exception- 이름이 정해지지 않은 예외 : Non-predefined ORACLE Exception 사용자 정의 예외 : 선언부에서 exception 형으로 예외를 선언한 후 실행부 또는 예외처리부에서 RAISE문을 통해 명시적으로 예외 발생 예외 처리 사용하기예외를 처리하기 위해서 ..

오라클/PL/SQL 2014.10.16

PL/SQL CURSOR

커서 - 묵시적 커서(Implicit Cusor) : 필요할 경우 오라클이 자동적으로 선언하여 사용한 후 자동적으로 정리 - 명시적 커서(Explicit Cursor) : 사용자가 정의한 커서른 선언하여 사용하고, 커서의 사용이 끝난 후에는 별도의 정리 작업을 수행해줘야 함 묵시적 커서- 세션 내에 단 한 개만이 선언되어 사용되었다가 문장이 종료됨과 동시에 정리, 1개의 데이터만 저장됨 묵시적 커서 속성- SQL%ROWCOUNT해당 커서에서 실행한 총 행의 개수(가장 마지막 행이 몇 번째 행인지 카운트)를 반환 - SQL%FOUND해당 커서 안에 아직 수행해야 할 데이터가 있을 경우 TRUE 값을 반환하고 없을경우 FALSE 값을 반환 - SQL%NOTFOUND해당 커서 안에 아직 수행해야 할 데이터가 ..

오라클/PL/SQL 2014.10.14

PL/SQL 제어문

1. 조건문 (IF 문)유형 1. IF ~ END IF 문장 조건이 여러 개 일 경우에 사용하는 가장 기본적인 IF 문장문법 : IF (조건) THEN실행문장 ;END IF ;예 : EMP 테이블에서 EMPNO, ENAME, DEPTNO, DNAME 을 출력단 DNAME 의 값은 아래와 같다DEPTNO 가 10 이면 'ACCOUNT' ,DEPTNO 가 20 이면 'RESEARCH' ,DEPTNO 가 30 이면 'SALES' ,DEPTNO 가 40 이면 'OPERATIONS' 로 출력 SCOTT>DECLAREvempno emp.empno%TYPE ;vname emp.ename%TYPE ;vdeptno emp.deptno%TYPE ;vdname VARCHAR2(20) := null ;BEGINSELECT e..

오라클/PL/SQL 2014.10.13

PL/SQL 변수

PL/SQL 에서 변수를 사용하는 이유- 변수는 데이터의 임시 저장 영역이다.- 저장된 값을 조작하기 위해 사용- 저장된 값을 반복해서 재 사용할 수 있다. PL/SQL 에서 사용될 변수의 규칙 - 반드시 문자로 시작해야만 한다.- 문자나 숫자, 특수문자를 포함할 수 있다.- 변수명은 30 bytes 이하여야 한다.- 예약어를 포함하면 안된다 주요 변수들의 종류 단순 변수 -Scalar(스칼라) 변수 와 Reference 변수Scalar 변수 - 단일 값을 가지는 변수의 데이터 형을 직접 지정해 주는 변수, 즉 정수, 실수 이런 형태를 직접 지정Reference 변수 - 데이터 형을 다른 컬럼에서 참조 후 지정하는 방식 (1) Scalar 변수문법 : Identifier [CONSTANT] datatyp..

오라클/PL/SQL 2014.10.13

PL/SQL 시작하기

PL/SQL - Procedural Language/SQL PL/SQL 의 런타임 구조PL/SQL 실행 시 실행 원리 PL/SQL 기본 구조PL/SQL 은 기본적으로 블록(BLOCK) 구조를 가지고 있다. 블록의 기본 구성은 선언부(DECLARE), 실행부(BEGIN), 예외처리부(EXCEPTION)로 구성그 블록 안에 블록을 포함시킬 수 있는 데 포함된 블록을 Nested Block(중첩 블록) 이라고 부름 블록의 유형에는 크게 Anonymous PL/SQL Block(익명블록) 과 Stored PL/SQL Block(저장된 블록) 이 있다.익명블록 = 일회성으로 사용할 경우저장된 블록 = 서버에 파싱해서 자장해 놓고 주기적으로 반복해서 사용할 경우 DECLARE(선언부) 모든 변수나 상수를 선언하는 ..

오라클/PL/SQL 2014.10.13

Sub Query

Sub Query 문법 :SELECT select_listFROM Table 또는 ViewWHERE 조건 연산자 ( SELECT select_listFROM TableWHERE 조건) ; 위 문법에서 괄호 안에 있는 쿼리를 Sub Query 라고 부르고 괄호 밖에 있는 쿼리를 Main Query 라고 부른다 Sub Query 의 종류1) 단일 행 Sub Query서브 쿼리의 결과가 1 개의 행만 나오는 것 WHERE 절에서 사용되는 연산자연산자 의미 = 같다 같지 않다 > 크다 ( SELECT hiredateFROM professorWHERE name = '송도권' ) ; (3) 단일 행 Sub Query 연습 문제 3 :Student 테이블에서 1 전공이 101번인 학과의 평균 몸무게보다 몸무게가 많은..

카테고리 없음 2014.10.13

DML

DML (Data Manipulation Language) : INSERT (입력) , UPDATE (변경) , DELETE (삭제) , MERGE(병합) 1. INSERT테이블에 새로운 데이터를 입력할 때 사용, 데이터 입력시 숫자 값 이외에는 데이터를 '(홀따옴표)로 감싸야 함 1) INSERT 를 사용하여 단일 행 입력문법 :INSERT INTO table(column1, column2, ....)VALUES (value 1, value 2, ....) ; 사용 예 1. dept2 테이블에 아래와 같은 내용으로 새로운 부서정보 입력* 부서번호 : 9000* 부서명 : 특판1팀* 상위부서 : 영업부* 지역 : 임시지역SCOTT>INSERT INTO dept2 (dcode, dname, pdept, a..

오라클/SQL 2014.10.12

DDL

DDL (Data Definition Language) - CREAT (생성) , ALTER (수정) , TRUNCATE (잘라내기) , DROP (삭제) 1.CREATE ※ 테이블 생성시 제한 사항1. 테이블 이름은 반드시 문자로 시작해야 한다. 숫자로 시작은 불가능하고 포함되는것은 가능 2. 테이블 이름이라 컬럼 이름은 최대 30 bytes 까지 가능, 한글로 테이블 이름을 생성할 경우 최대 15글자까지 3. 테이블 이름은 한 명의 사용자가 다른 오브젝트들의 이름과 중복으로 사용할 수 없다.ex) scott 사용자가 테이블명을 test로 생성한 후 인덱스 이름을 test로 동일하게 사용하는게 불가능scott 사용자가 test 테이블을 생성하고 다른 사용자인 hr 사용자도 test 테이블을 사용가능4...

오라클/SQL 2014.10.12

JOIN 함수

JOIN 함수여러 곳의 테이블에 흩어져 있는 정보중 사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들어서 결과를 볼 수 있게끔 하는 방법 INNER JOIN (이너조인) - 테이블에 데이터가 존재하는 경우에만 값을 출력OUTER JOIN (아우터조인) - 한쪽 테이블에는 데이터가 있고 다른 한쪽에는 데이터가 없을 경우 데이터가 있는 쪽 테이블의 내용을 전부 출력하게 하는 방법 Oracle 제품에서만 사용되는 Oracle 용 Join 과 모든 제품들에서 공통적으로 사용 가능한 ANSI Join 방법 두가지가 있다. - Oracle Join 구문 :SQL> SELECT e.ename , d.dname 2 FROM EMP e , dept d ; - ANSI Join 구문 :SQL> SELECT e.ena..

오라클/SQL 2014.10.10

그룹함수 (연습문제)

1. Professor 테이블을 사용하여 교수 중에서 급여(Pay) 와 보너스(bonus)를 합친 금액이 가장 많은 경우와 가장 적은 경우, 평균 금액을 구하세요. 단 보너스가 없을 경우는 보너스를 0 으로 계산하고 출력 금액은 모두 소수점 첫째 자리까지만 출력 2. Professor 테이블을 사용하여 교수 중에서 급여(Pay) 와 보너스(bonus)를 합친 금액이 가장 많은 경우와 가장 적은 경우, 평균 금액을 구하세요. 단 보너스가 없을 경우는 급여를 0 으로 계산하고 출력 금액은 모두 소수점 첫째 자리까지만 출력 3. student 테이블의 birthday 컬럼을 사용하여 아래와 같이 월별로 태어난 인원수를 출력4. emp 테이블의 hiredate 컬럼을 참조해서 아래와 같이 월별로 입사인원수를 출..

오라클/SQL 2014.10.08