본문 바로가기

생각상자/DB-Oracle

PL/SQL (7) - 조건문 사용 1. IF 문 ********************************************************************************************************************** IF (조건) THEN (조건이 참일 경우 수행) ELSE (조건이 참이 아닐 경우 수행) END IF; ********************************************************************************************************************** 2. 중첩 IF 문 **********************************************************************************.. 더보기
PL/SQL (6) - 패키지 사용의 예 회사에서 수많은 오라클 패키지를 볼 수 있다. 내가 짠 건 아니지만, 패키지가 이런 곳에 쓰이는구나라고 처음 알게되었다. 패키지... 언뜻 책만 본 학생들은 감이 오지 않겠지만 실제 필드에서 사용되는 패키지는 강력한 도구임에 틀림없다. DB엔 회사에 관련된 모든 정보가 저장되어 있으며, 이를 관리하는게 DBMS 이다. DB엔 임직원들의 인사정보가 모두 들어있을 것이며, 인사부에서 사용되는 인사프로그램엔 특정인의 이름을 입력하면 그 사람의 ID가 나온다고 생각해보자. 인사프로그램에서 '사용자ID 조회'라는 메뉴가 있어서 이를 사용하여 '강용운'이란 이름을 쳐 넣으면, 정보가 나올것이다. 1. 인사프로그램은 정보를 가져오기 위해 DB에 접속하여 q_account 라는 패키지의 get_userid 프로시저를 .. 더보기
PL/SQL (5) - 함수 함수를 사용하는 이유 1. 코딩량을 줄일 수 있다. 2. 함수를 이용하여 모듈 단위로 접근할 수 있다. 3. 반복해서 재사용 할 수 있다. 함수 정의 ******************************************************************************************************************** FUNCTION 함수명 [(파라미터 {IN|OUT|IN OUT})] RETURN 반환데이터형 IS|AS 선언문 BEGIN 실행문 (EXCEPTION) 예외처리문 END 함수명; / ************************************************************************************************.. 더보기
PL/SQL (4) - 연산자 연산자 종류 - 대입 연산자 변수 := 값 - 산술 연산자 ** : 지수연산자. 10**5 = 10*10*10*10*10 + - * / : 산술계산 - 비교 연산자 : 반환값은 True / False. = : 대등 연산자 , !=, ~= : 부등 연산자 , = : 범위 비교 LIKE : 패턴일치 연산자 (log% : log로 시작하는 모든 것. log___ : log로 시작하고 log 뒤에가 3자리인 것) BETWEEN a AND b : 지정한 범위(a~b) 사이 IN : 값이 목록내에 있는지 IS NULL : 값이 null인지 조사 [예제1] LIKE 연산자를 사용한 함수 - 함수이기 때문에 RETURN 값을 지정하여야 한다. ******************************************.. 더보기
PL/SQL (3) - 블럭 구조 PL/SQL을 마스터하기 위해서는 블럭 구조와 블럭의 다양한 종류, 블럭의 사용법을 이해하는 것이 필수적이다. Anonymous Block (이름 없는 블럭) - 아무런 이름이 없는 블럭으로 프로시저나 함수, 트리거의 본문을 형성하지 않는 블럭 - 이는 SQL*Plus 스크립트의 일부로 인라인으로 사용될 수 있으며, 오류 처리 목적으로 프로시저와 함수 블럭 내부에 포함될 수도 있다. - DECLARE 라는 예약어를 사용하여 시작하고 다음 예약어인 BEGIN 사이에 변수를 선언한다. - BEGIN 예약어는 블럭의 절차적 부분이 시작된다는 것을 알려준다. 프로그램 코드가 이 부분에 온다. - EXCEPTION 예약어는 블럭에서 예외 처리 코드를 갖는다. ******************************.. 더보기
PL/SQL (2) - 데이터형 데이터형 (datatype) - PL/SQL 에서 블럭은 프로그래밍의 기본 단위이다. - 블럭은 프로그램 코드와 변수 선언문을 둘 다 갖고 있다. 스칼라 변수 VARCHAR2 가변 길이 문자 스트링 CHAR 고정 길이 문자 스트링 NUMBER 고정 소수점 또는 부동 소수점 숫자 DATE 날짜 BOOLEAN TRUE/FALSE 값 변수 명명 규칙 ① 변수이름은 문자,$,_,# 으로 구성된다. ② 변수이름은 반드시 문자로 시작한다. ③ 변수이름은 최대 30자이다. ④ 변수이름은 대소문자를 구분하지 않는다. ⑤ 알아보기쉽게 쓴다. (empyearsal → emp_year_sal → Emp_Year_Sal) ⑥ 변수, 함수, 프로시저 이름등을 쉽게 구분하기 위해 예약어는 대문자만 사용하는 경우도 있다. 변수선언.. 더보기
PL/SQL (1) - 개념과 예제 PL/SQL 이란? - Procedural Language / Sturctured Query Language - SQL에 프로그래밍 언어 설계 기능을 절차적으로 추가한 것 - 오라클사가 데이터베이스에서 SQL에 대해 절차적 로직을 실행하는 방법을 제공하기 위해 개발한 절차적 언어 - 데이터 캡슐화, 예외 처리, 정보 숨김, 객체 지향 등의 현대 S/W 공학 기능 제공 - SQL문을 블록 구조 및 프로시저 단위 코드에 포함시킬 수 있는 강력한 트랜잭션 처리 언어 PL/SQL 처리과정 - 오라클 선행 컴파일러에서 PL/SQL 블록(코드)를 제출하면 Oracle Server 내의 PL/SQL 엔진이 이를 처리한다. - PL/SQL 엔진은 블록 내의 SQL문을 분리하여 하나씩 SQL문 실행자로 전송한다. - P.. 더보기
[Oracle]날짜관련 연산 SQL /* 특정일 까지의 간격을 년, 개월, 일로 표현하기 */ SELECT TRUNC((MONTHS_BETWEEN(SYSDATE, TO_DATE('19780124', 'YYYYMMDD')) / 12)) "년", TRUNC((MONTHS_BETWEEN(SYSDATE, TO_DATE('19780124', 'YYYYMMDD')) - TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19780124', 'YYYYMMDD')) / 12) * 12)) "개월", TRUNC((MONTHS_BETWEEN(SYSDATE, TO_DATE('19780124', 'YYYYMMDD')) - TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19780124', 'YYYYMMDD')))) * 3.. 더보기