📃 DATABASE

    [PL/SQL] 레코드(RECORD) : 사용자정의형 레코드, 테이블형 레코드

    [PL/SQL] 레코드(RECORD) : 사용자정의형 레코드, 테이블형 레코드

    [PL/SQL] 레코드(RECORD) : 사용자정의형 레코드, 테이블형 레코드 [PL/SQL] 레코드(RECORD) : 커서형 레코드, 중첩 레코드 레코드(RECORD)PL/SQL에서 제공하는 데이터 타입 중 하나로, 문자형, 숫자형 같은 기본 빌트인 타입과는 달리 복합형 구조다.일반 빌트인 타입으로 변수를 선언하면 해당 변수는 한 번에 하나의 값만 가질 수 있지만 레코드는 여러 개의 값을 가질 수 있다.테이블과 달리 레코드가 가질 수 있는 로우의 수는 단 한 개 뿐이다.커서라는 것이 테이블에 있는 데이터를 읽어오는 것이므로 데이터 구조적 측면에서 보면 커서도 레코드에 속하기 때문에, 레코드도 커서와 동일한방식으로 선언한다. 사용자 정의형 레코드레코드에서 테이블의 컬럼에 해당하는 것을 필드라고 한다. 1..

    [PL/SQL] 커서(CURSOR) (3) : 커서 변수

    [PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서 변수특징- 한 개 이상의 쿼리를 연결해 사용할 수 있다. 하나의 커서 변수를 선언해 쿼리를 연결해서 사용한 뒤, 같은 커서 변수를 또 다른 쿼리에 연결해서 사용할 수 있다.- 변수처럼 커서 변수를 함수나 프로시저의 매개변수로 전달할 수 있다.- 커서 속성을 사용할 수 있다. 사용방법1. 커서 변수 선언하기12TYPE 커서_타입명 IS REF CURSOR [ RETURN 반환 타입 ];커서_변수명 커서_타입명;cs 반환타입은 해당 커서가 반환하는 결과 집합을 나타내며 '%ROWTYPE' 속성으로 정의한다.RETU..

    [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문

    [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문

    [PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서와 FOR문 기존의 FOR문 형태는 아래와 같다.1234FOR 인덱스 IN 초기값..최종값LOOP 처리문;END LOOP;cs 그런데, 커서를 이용해서 FOR문을 작성하면 아래와 같이 사용할 수 있다.1234FOR 레코드 IN 커서명 (매개변수1, 매개변수2, ...)LOOP 처리문;END LOOP;cs 이때, 레코드는 테이블 로우 전체를 담아둘 수 있는 오라클 데이터 타입 중 하나이다. 예제123456789101112131415DECLARE -- 커서 선언, 매개변수로 부서코드를 받기 CURSOR CUR_EMP..

    [PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서

    [PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서

    [PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서(CURSOR)특정 SQL 문장을 처리한 결과를 담고있는 영역을 가리키는 일종의 포인터로, 커서를 사용하면 처리된 SQL문장의 결과 집합에 접근할 수 있다.(커서선언(명시적커서))-커서열기-패치-커서닫기 3단계로 진행된다. 묵시적 커서오라클 내부에서 자동으로 생성되어 사용하는 커서로, PL/SQL 블록에서 실행하는 문장(INSERT, UPDATE, MERGE, DELETE, SELECT INTO)이 실행될 때마다 자동으로 만들어져 사용된다.개발자 입장에서는 이러한 커서의 동작을 관여할 수는 없지만, 커서 속성을 ..

    [PL/SQL] 트랜잭션

    트랜잭션특정 테이블에서 데이터를 읽어 조작 후 다른 테이블에 입력하거나 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌리고, 처리과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영하는 것 COMMIT데이터의 처리내역을 최종적으로 반영시키는 것1COMMIT [WORK];cs ROLLBACK데이터베이스에 가해진 변경사항을 취소시킨다.1ROLLBACK [WORK] [TO [SAVEPOINT] 세이브포인트명];cs COMMIT은 작업이 성공했을 때, ROLLBACK은 작업이 실패했을 때 처리하므로 일반적으로 PL/SQL 코드를 작성할 때 디폴트로 실행부 맨 하단에 COMMIT을 명시한다. 반면, ROLLBACK은 예외처리와 함께 사용됭 특정 예외가 발생했을 때 예외처리 구문에 ROL..

    [PL/SQL] 예외처리(3) : 효율적인 예외처리

    [PL/SQL] 예외처리(3) : 효율적인 예외처리

    예외처리(1) : 예외처리란? 예외처리(2) : 시스템 예외와 사용자 정의 예외 예외처리(3) : 효율적인 예외처리 효율적인 예외처리 방법 1. 시스템 예외인 경우는 OTHERS를 사용하자모든 시스템 예외를 알 수 없기 때문에, 모든 시스템 예외를 잡아주는 OTHERS와 예외의 정보를 알려주는 SQLCODE, SQLERRM을 적극 사용하자. 2. 예외처리 루틴을 공통 모듈화하고, 발생된 예외 로그를 남기자발생한 예외에 대한 로그 테이블을 만들어 예외가 발생할 때 만다 로그 테이블에 기록하자. 3. 사용자 정의 예외도 별도의 테이블을 미리 만들어 관리한다.동일한 예외 코드의 중복을 막기위해서 예제먼저, 예외 로그를 남길 테이블을 만든다.123456789CREATE TABLE ERROR_LOG( ERROR_..

반응형