[Oracle] REGEXP_REPLACE
·
TIL/Oracle
REGEXP_REPLACE는 찾고자 하는 문자를 원하는 문자로 바꿀 수 있는 함수이다. 【형식】 REGEXP_REPLACE (source_char, pattern [, replace_string [, position [, occurrence [, match_param]]]] ) 예시1) select email, regexp_replace(email, 'arirang','seoul') from test; EMAIL REGEXP_REPLACE(EMAIL,'ARIRANG','SEOUL') ------------------------------------------------------------- arirang@abc.co.kr seoul@abc.co.kr 예시2) select REGEXP_REPLACE(co..
[SIST] Oracle_days20
·
TIL/Oracle
1. 트랜잭션(Transaction) 1) 트랜잭션(Transaction)이란 일의 처리가 완료되지 않은 중간 과정을 취소하여 일의 시작 전 단계로 되돌리는 기능이다. 2) 결과가 도출되기까지의 중간 단계에서 문제가 발생하였을 경우 모든 중간 과정을 무효화하여 작업의 처음 시작 전 단계로 되돌리는 것 3) 일이 모두 완료되면 알리는 COMMIT 과 일의 취소를 알리는 ROLLBACK 이 쓰인다. 4) DML문을 실행하면 해당 트랜젝션에 의해 발생한 데이터가 다른 사용자에 의해 변경이 발생하지 않도록 LOCK(잠김현상)을 발생한다. 5) LOCK은 COMMIT 또는 ROLLBACK 문이 실행되면 해제된다. 예) 6) A 트랜잭션과 홍길동 트랜잭션 테스트 왼쪽 시트 창에서 UPDATE 문을 실행하고 커밋을 ..
[SIST] Oracle_days19
·
TIL/Oracle
1. 패키지(PACKAGE) 1) 관계되는 타입, 프로그램 객체, 서브프로그램(procedure, function)을 논리적으로 묶어 놓은 것은 의미 2) 패키지는 specification과 body 부분으로 되어 있으며, 오라클에서 기본적으로 제공하는 패키지가 있다. 3) SPECIFICATION 부분은 type, constant, variable, exception, cursor, sub program(저장프로시저, 저장 함수)이 선언된다. 4) BODY 부분은 cursor, subprogram 따위가 존재한다. 5) 호출할 때 '패키지_이름.프로시저_이름' 형식의 참조를 이용해야 한다. 예시1) ㄱ. SPECIFICATION 부분 CREATE OR REPLACE PACKAGE logon_pkg AS..
[SIST] Oracle_days18
·
TIL/Oracle
1. 트리거(Trigger) 1) 어떤 작업 전(before) 또는 작업 후(after) 트리거에 정의한 로직을 실행하는 PL/SQL의 한 종류 2) 대상(테이블)에 미리 트리거를 지정하면 어떤 이벤트(DML)가 발생할 때 자동으로 지정된 트리거가 작동(할당) 3) 트리거 예시 4) 트리거 키워드(예약어) ㄱ. 작업 전에 자동 처리되는 트리거 : BEFORE TRIGGER ㄴ. 작업 후에 자동 처리되는 트리거 : AFTER TRIGGER ㄷ. FOR EACH ROW : 행 마다 처리되는 트리거(ROW TRIGGER) ㄹ. REFERENCING : 영향받는 행의 값 참조 ㅁ. :OLD -> 참조되기 전에 열(컬럼)의 값 ㅂ. :NEW -> 참조한 후에 열(컬럼)의 값 5) 트리거 형식 【형식】 CREATE..
[SIST] Oracle_days17
·
TIL/Oracle
1. 저장프로시저 예제 다루기 예제1) 회원가입할때 ID 중복체크 하는 저장 프로시저 생성 가정 : emp 테이블에서 empno(ID)라고 가정 프로시저에 출력용 파라미터 선언을해서 그 값이 0을 돌리면 ID 사용가능, 1을 돌리면 ID 사용불가능 CREATE OR REPLACE PROCEDURE up_idCheck ( pempno IN emp.empno%TYPE -- ID를 받을 파라미터 , pempnoCheck OUT NUMBER -- 사용가능여부(0, 1)를 돌려주는 파라미터 ) IS BEGIN SELECT COUNT(*) INTO pempnoCheck FROM emp WHERE empno = pempno; -- ID가 있다면 갯수가 늘어나니까 바로 확인 가능. -- EXCEPTION END; DE..
[SIST] Oracle_days16
·
TIL/Oracle
저번주 토요일부터 이번주 일요일까지는 팀프로젝트를 하는 기간이다. 오전에 1~2시간 정도 수업을 듣고 팀프로젝트를 하고 있어서 복습 내용이 그리 많지는 않다. 오늘은 PL/SQL의 저장 프로시저에 대해서 여러 예저를 다뤄보았다. 1. 저장 프로시저(stored procedure) ㄱ. 저장 프로시저 생성 - dept 테이블에 새로운 부서를 추가하는 up_incdept (1) 테이블 확인 SELECT * FROM dept; (2) seq_dept 시퀀스 유무 확인 SELECT * FROM user_sequences; (3) seq_dept 시퀀스 삭제 후 재생성 DROP SEQUENCE seq_dept; (4) 시퀀스 생성 CREATE SEQUENCE seq_dept INCREMENT BY 10 START..
[SIST] Oracle 데이터 임포트와 익스포트
·
TIL/Oracle
데이터 임포트 - 엑셀로 데이터를 저장 후 Oracle SQL Developer에서 데이터를 자동으로 가져올 수 있다. 1. 데이터를 임포트할 테이블 우클릭 후 데이터 임포트 메뉴 클릭 2. 아래와 같은 창이 나오면 찾아보기 클릭 후 엑셀 파일을 가져오기 3. 확인 후 다음 4. 선택된 열 확인 5. 소스 데이터 열에 해당하는 형식도 바꿀 수 있음 6. 완료 누르기 완료를 하면 아래와 같이 데이터가 잘 들어간 것을 확인할 수 있다. 익스포트 테이블 생성할 수 있는 쿼리를 다른 사람에게 줄 수 있는데 eXERD 포워드 엔지니어링하여 쿼리가 없을 경우 익스포트를 하여 손쉽게 쿼리를 줄 수 있다. 1. 익스포트.sql 파일을 저장할 경로를 지정 후 다음 2. 데이터베이스 객체 확인 후 다음 3. 그 다음 창에..
[SIST] Oracle_days15
·
TIL/Oracle
1. PL/SQL 1) SQL 확장 + PL == [P]rocedural [L]anguage extensions to SQL을 의미 2) 이는 비절차적인 SQL 언어를 '절차적'으로 사용할 수 있도록 한다. (1) 변수 선언 (2) 제어문 (3) 예외 처리 등등 3) PL/SQL은 블록 구조로 된 언어이며, 3가지의 블럭으로 구조되어있다. [ 선언 기능 블럭 ] [ 실행 기능 블럭 ] [ 예외 처리 블럭 ] 4) PL/SQL 선언 형식 *** 【형식】 [ DECLARE ] -- 선언블럭(declarations) : 변수 선언, 상수 선언 BEGIN -- 실행블럭(statements) : INSERT, DELETE, UPDATE 등 [ EXCEPTION ] -- 예외 처리 블럭(handlers) END; ..
[SIST] Oracle_days14
·
TIL/Oracle
1. 정규화(Normal From) (1) 제1정규화(1NF) - 릴레이션에 속한 '모든 속성의 도메인(컬럼 값)이 원자 값(atomic value) (= 중복이 되지 않은 값)으로만 구성'되어 있으면 제1정규형에 속한다. - 반복되는 속성을 제거한 뒤 기본 테이블의 기본 컬럼을 추가해 새로운 테이블을 생성한다. (2) 제2정규화(2NF) - '부분 함수적 종속성 제거'해서 완전 함수 종속으로 만드는 것 - 모든 컬럼(속성)이 복합키 전체에 종속적이어야한다. * 함수적 종속성 개념 : 항상 속성의 값이 오직 하나만 연관되어있을 때 Y는 X에 함수적 종속이라고 한다. ex) dname은 deptno에 함수적 종속, loc는 deptno에 함수적 종속 X는 결정자, Y(dname) Z(loc) 는 종속자 *..