top 327

18 ORACLE EXCEPTION (예외처리)

1. PL/SQL 예외란?PL/SQL 블록이 PARSE 되는 동안에 오타 등으로 인하여 발생되는 에러를 컴파일 에러 (Compilation Error) 라고 부르며,PL/SQL 블록이 실행되는 동안 발생되는 에러를 런타임 에러 (Run-Time Error) 라고 부르는데, 이 런타임 에러를 오라클에서는 예외 (Exception) 라고 부른다.오라클의 예외 종류는 두가지이며 오라클 예외 (ORACLE Exception) 와 사용자 정의 예외 (User-defined Exception) 가 그것이다. Predefined ORACLE Exception (미리 정의되어 있는 오라클 예외들)ACCESS_INTO_NULLORA-06530정의되지 않은 오브젝트 속성에 값을 할당하고자 했을 때 발생되는 예외 CASE_..

IT기술/Oracle 2013.11.19

17 PL/SQL Cursor (커서)

1. SQL 커서란?오라클 서버에서는 사용자의 SQL 문장을 처리하는 모든 서버 프로세스는 SQL 문을 실행할 때마다 처리를 위한 개별적인 메모리 공간을 사용한다.커서란 이 개별 메모리 공간에 있는 데이터를 사람이 접근할 수 있도록 연결해주는 일종의 연결통로이며 포인터라고 부르기도 한다.즉 사용자가 요청하는 데이터를 데이터베이스 버퍼 캐쉬에서 개별적인 메모리 공간(PGA)으로 복사해 온 후 커서를 통해서 원하는 데이터에 접근한 후 필요한 데이터를 추출하여 PL/SQL 변수에 담고 후속 작업을 하게 된다는 뜻이다. 이 메모리 공간을 Private SQL Area 라고도 부르며,오라클의 서버 프로세스 구성이 Dedicated Server 환경이냐 또는 MTS(Multi-Threaded Server) 환경이냐..

IT기술/Oracle 2013.11.19

16 PL/SQL 제어문

오라클이 제공하는 제어문의 종류는 크게 조건문과 반복문으로 나눌 수 있다.조건문은 IF 문과 CASE 문이 있으며 반복문은 반복횟수를 알 수 없을 경우에 주로 사용하는 BASIC LOOP 문장과 WHILE 문 그리고 반복횟수를 지정할 수 있는 FOR 문으로 나눌 수있다. 1. 조건문(IF 문) 유형1. IF ~ END IF 문장 예: EMP 테이블에서 EMPNO, ENAME, DEPTNO, DNAME 을 출력하세요.단, DNAME 의 값은 아래와 같습니다.DEPTNO 가 10이면 'ACCOUNT'DEPTNO 가 20이면 'RESEARCH'DEPTNO 가 30이면 'SALES'DEPTNO 가 40이면 'OPERATIONS' SET SERVEROUTPUT ON DECLAREv_empno emp.empno%T..

IT기술/Oracle 2013.11.15

15 PL/SQL 변수

1. 개요 PL/SQL 에서 변수를 사용하는 이유* 변수는 임시 저장 영역이다.* 저장된 값을 조작하기 위해* 저장된 값을 반복해서 재사용할 수 있다. PL/SQL 에서 사용될 변수 규칙* 반드시 문자로 시작* 문자나 숫자, 특수문자를 포함할 수 있다.* 변수명은 30 BYTES 이하여야 한다* 예약어를 포함하면 안된다. 변수 처리 순서* 선언부에서 선언되고 원한다면 특정 값으로 초기화도 가능하다.일반적으로 PL/SQL 에서는 선언부에서 사용될 변수를 선언한다.변수를 선언한다는 의미는 해당 변수에 들어올 값에 대한 메모리 공간을 미리 확보하고,해당 데이터 유형을 지정하고, 참조하도록 저장 공간 이름을 지정하는 의미가 있다.선언 시에 원한다면 특정 값으로 초기화도 할 수 있고 NOT NULL 제약 조건도 ..

IT기술/Oracle 2013.11.15

14 ORACLE PL/SQL 시작하기

1. PL/SQL 이란?PL/SQL 이란 Procedural Language/SQL 의 약자로 절차적인 기능을 기본적으로 가지는 프로그래밍 언어로데이터 트랜잭션 처리 능력이나 정보보호, 데이터에 대한 보안, 예외처리 기능, 객체 지향 등 데이터 베이스와 관련된 중요한 기능을 지원하는 데이터베이스 업무를 처리하기에 최적화된 언어이다. 2. PL/SQL 의 런타임 구조PL/SQL 엔진이 SQL 을 발견하게 되면 컨텍스트 변환 과정을 거친 후 오라클 서버 프로세스에 전달되고오라클 서버 프로세스가 SQL문장 수행과정 (Parse → Bind → Execute → Fetch (SELECT 인 경우만)) 을 거쳐서쿼리를 수행한 후 값을 리턴해야 PL/SQL 나머지 부분이 실행된다.※ PL/SQL 이 빨리 실행되기 ..

IT기술/Oracle 2013.11.15

13 사용자 관리

1. USER 와 SCHEMA 알아보기USER: 오라클 서버에 접속하기 위한 사용자SCHEMA: 특정 사용자가 만들어 놓은 모든 OBJECT의 집합 (예: SCOTT 사용자가 만든 TABLE, INDEX, VIEW, CONSTRAINT, TRIGGER, DBLINK, SYNONYM, SEQUENCE 등을 다 통틀어서 SCOTT SCHEMA라 한다.) 2. PROFILE 관리하기사용자 계정의 행동에 제약사항을 두기 위해 사용 (1) PASSWORD PROFILE 관련 파라미터 1) FAILED_LOGIN_ATTEMPTS로그인 실패시 잠금 횟수 설정 2) PASSWORD_LOCK_TIME1에서 잠긴 계정을 며칠동안 잠글지 설정 3) PASSWORD_LIFE_TIME동일한 암호 사용 가능일 수 설정 4) PA..

IT기술/Oracle 2013.11.14

12 계층형 쿼리 (Hierachical Query)

계층형쿼리란 데이터를 조회할 때 상하관계를 표시하는 쿼리이다. 주요 문법SELECT LPAD(dname, LEVEL*6, '*') 부서명FROM dept2CONNECT BY PRIOR dcode = pdeptSTART WITH dcode = 0001 ; LEVEL 해당 데이터가 몇 번째 단계이냐를 의미하는 것이다.CONNET BY PRIOR 절은 각 행들이 서로 어떻게 연결되어야 하는 지를 지정하는 부분이다. SELECT LPAD(dname, LEVEL*6, '*') 부서명FROM dept2CONNECT BY dcode = PRIOR pdeptSTART WITH dcode = 0001 ; PRIOR 는 해당 키워드가 설정되어 있는 컬럼에서 바로 이전의 데이터값을 찾는데 사용된다. * 특정 부서의 상위 부..

IT기술/Oracle 2013.11.14

11 SEQUANCE 와 SYNONYM (동의어)

1. SEQUENCE (시퀀스) 마치 은행의 번호표처럼 연속적인 일련번호를 만들어주는 기능 CREATE SEQUENCE sequence_nameINCREMENT BY n 시퀀스 번호의 증가 값으로 기본값은 1START WITH n 시퀀스 시작 번호로 기본값은 1MAXVALUE n | NOMAXVALUE 생성가능한 시퀀스 최대값MINVALUE n | NOMINVALUE CYCLE일 경우 새로 시작되는 값CYCLE | NOCYCLE 시퀀스 번호를 순환 사용할 것인지 지정 기본값은 NOCYCLE CACHE n | NOCACHE 시퀀스 생성속도를 개선하기 위해 캐싱 여부 지정 사용 예1. 아래의 조건으로 제품 주문번호를 생성하기 위해 사용할 SEQUENCE 를 만드세요.SEQUENCE 명 : seq_jumun_..

IT기술/Oracle 2013.11.13

10 VIEW

View 란 가상의 테이블이다.CTAS 로 복사해서 만들면 원본 데이터를 수정해도 반영이 되지 않는다. 1. 단순 VIEW (Simple View)단순 View는 View를 생성할 서브 쿼리에 조인 조건없이 1개의 테이블로 만들어지는 간단한 View를 의미한다.View를 생성하기 위해서는 CREATE VIEW 권한이 필요하며 실습을 위해서 SYS 계정으로 권한을 할당해야 한다.CONN / AS SYSDBA ;GRANT CREATE VIEW TO SCOTT ;CONN SCOTT/TIGER ; 생성 문법CREATE [OR REPLACE] [ FORCE | NOFORCE] VIEW view [ (alias, alias,……)] AS sub-query [ WITH CHECK OPTION [CONSTRAINT 제..

IT기술/Oracle 2013.11.12

9 INDEX

1. 인덱스란?데이터들의 ROWID 정보를 별도의 세그먼트(대표적 세그먼트가 테이블)에 넣어서 저장하고 관리하는데 이 세그먼트를 인덱스라 한다. 2. 인덱스 생성 원리전체테이블 스캔 → 정렬 → Block 기록 3. 인덱스 구조와 작동 원리 (B-TREE 인덱스 기준)인덱스는 컬럼이 두개다. Key, ROWIDKey 컬럼은 인덱스를 생성하라고 지정한 컬럼 값 SELECT *FROM 사원WHERE 이름='홍길동' ; 위 SQL을 수행하면1. 서버 프로세스가 파싱이란 과정을 마친 후 메모리(데이터베이스 버퍼 캐시)에 이름이 홍길동인 사람의 정보가 있는지 살펴본다. 2. 정보가 없으면 하드 디스크의 파일에서 홍길동 정보를 가진 블록을 복사해서 메모리로 가져온 후 홍길동 정보만 복사해서 사용자에게 보여준다.(하..

IT기술/Oracle 2013.11.12