목록Oracle Database (103)
hyeonga_code
-- 최종 오라클 정리 -- 사용중인 데이터 블록의 개수를 조회합니다. SELECT table_name, blocks, empty_blocks, last_analyzed FROM user_tables; -- 데이터 개수를 확인합니다. -- 변경할 테이블의 행의 개수를 확인합니다. SELECT table_name, num_rows, blocks, empty_blocks, last_analyzed FROM user_tables WHERE table_name='EMPL_DEMO'; -- 데이터 삭제 DELETE FROM empl_demo WHERE department_id IN (50,60,80); /* 84개 행 이(가) 삭제되었습니다. */ -- 커밋 COMMIT; /* 커밋 완료. */ -- 확인 SEL..
-- Trigger_트리거 -- 데이터베이스에 저장되고 지정된 이벤트에 대한 응답으로 실행되는 PL/SQL 블록입니다. -- 오라클 데이터베이스는 지정된 조건이 발생할 때 트리거를 자동으로 실행합니다. -- 테이블, 뷰, 스키마, 데이터베이스에 정의될 수 있습니다. -- 유형 -- 데이터베이스에서 발생할 때마다 실행되는 트리거를 작성할 수 있습니다. -- DML 문_DELETE, INSERT, UPDATE -- DDL 문_CREATE, ALTER, DROP -- SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN -- 구현 시나리오 -- 보안 -- 감사_Audit -- 데이터 무결성 -- 참조 무결성 -- 테이블 복제 -- 파생된 데이터 자동 계산 -- 이벤트 로깅 -- 가..
-- PACKAGE_패키지 -- 논리적으로 관련된 PL/SQL 유형, 변수 및 서브 프로그램을 그룹화하는 스키마 객체입니다. -- 오라클 서버가 동시에 여러 객체를 메모리 안으로 읽을 수 있도록 합니다. -- 구성 -- 일반적으로 파일을 따로 작성합니다. -- Spec -- Specification_패키지 명세 -- Public_공용 : public_var -- 패키지의 인터페이스입니다. -- 패키지외부에서 참조할 수 있는 유형, 변수, 상수, 예외, 커서 및 서브 프로그램을 선언합니다. -- Body -- Body_패키지 몸체 -- Private_전용 : private_var -- 커서에 대한 쿼리와 서브 프로그램에 대한 코드를 정의합니다. -- 장점 -- 모듈화 -- 관련 생성자를 캡슐화합니다. --..
-- Function_함수 -- 프로시저와 함수의 비교 -- 프로시저 -- PL/SQL 문으로 실행합니다. -- 헤더에 RETURN 절이 없습니다. -- 출력 파라미터를 사용하여 값을 전달할 수 있습니다. -- 값이 없이 RETURN 문을 포함할 수 있습니다. -- 함수 -- 표현식의 일부로 호출합니다. -- 헤더에 RETURN 절을 포함해야 합니다. -- 단일 값을 반환해야 합니다. -- 적어도 하나의 RETURN 문을 포함해야 합니다. -- 내장 함수 -- 값을 반환하는 명명된 PL/SQL 블록입니다. -- 반복 실행을 위해 데이터베이스에 스키마 객체로 저장할 수 있습니다. -- 표현식의 일부로 호출되거나 다른 서브 프로그램에 대한 파라미터 값을 제공하는 데에 사용합니다. -- PL/SQL 패키지로 ..
-- 서브 프로그램 -- 정의 -- 서브 프로그램 : 내장 프로시저 및 함수 -- 명명된 PL/SQL 블록입니다. -- 익명 블록과 유사한 블록 구조를 가집니다. -- 선택적 선언 섹션 -- DECLARE 키워드를 사용하지 않습니다. -- 필수 실행 섹션 -- 예외 처리 옵션 섹션 -- 명시적으로 실행해야 합니다. -- 익명 블록과 서브 프로그램의 차이 -- 익명 블록 -- 명명되지 않은 PL/SQL 블록입니다. -- 매번 컴파일됩니다. -- 데이터베이스에 저장되지 않습니다. -- 다른 응용 프로그램에서 호출할 수 없습니다. -- 파라미터를 사용할 수 없습니다. -- 값을 반환해야 하는 함수를 정의할 수 없습니다. -- 서브 프로그램 -- 명명된 PL/SQL 블록입니다. -- 한 번만 컴파일됩니다. --..
-- PL/SQL 제어 구조 -- 예외 처리 -- 예외 : 프로그램 실행 중 발생한 오류입니다. -- 발생하는 경우 -- 시스템 예외 : Oracle Server에 의해 암시적으로 발생합니다. -- 사용자 정의 예외 : 프로그램에 의해 명시적으로 발생합니다. -- 처리 방법 -- 처리기로 트랩 -- 호출 환경으로 전달 -- 예외를 프로그래밍하면 실행 중단을 방지할 수 있습니다. -- 오류 발생 시 출력되는 기본 메세지를 확인합니다. DECLARE v_lname VARCHAR2(15); BEGIN SELECT last_name INTO v_lname FROM employees WHERE department_id = 50; DBMS_OUTPUT.PUT_LINE ('John''s last name is :' ..
-- PL/SQL 제어 구조 -- CURSOR -- Oracle Server에서 할당한 전용 메모리 영역에 대한 포인터입니다. -- 실행되는 모든 SQL 문에는 연관된 개별 커서가 있습니다. -- PGA 안에 위치한 Private SQL 작업 영역을 사용하여 SQL 문을 실행하고 처리 정보를 저장합니다. -- 커서를 사용하여 전용 SQL 영역에 이름을 부여하고 저장된 정보에 엑세스 할 수 있습니다. -- 커서를 열어 질의에 의해 반환되는 행을 처리한 후 커서를 닫습니다. -- SELECT 문의 결과 집합을 처리하는 데에 사용합니다. -- 유형 -- 암시적 커서 : SQL문을 처리하기위해 내부적으로 생성, 관리합니다. -- 예외 처리 시 많이 사용됩니다. -- 명시적 커서 : 프로그래머가 명시적으로 선언합..
-- PL/SQL 제어 구조 -- 반복 제어문 -- LOOP 문 -- 명령문이나 명령문 시퀀스를 여러 번 반복합니다. -- 루프를 종료하려면 EXIT 문을 사용합니다. -- 사용하는 경우 -- 기본 루프 : 루프 안의 명령문이 적어도 한 번 실행되어야 하는 경우 -- WHILE 루프 : 매번 반복을 시작할 때마다 조건이 평가되어야 하는 경우 -- FOR 루프 : 반복 횟수를 알 수 있는 경우 -- 유형 -- 기본 루프 /* LOOP statement1; . . . EXIT [WHEN condition]; END LOOP; */ -- 전체 조건 없이 반복 작업을 수행합니다. -- 키워드 LOOP 와 END LOOP 사이에 있는 명령문 시퀀스를 묶습니다. -- 루프를 시작할 때 이미 조건이 만족하더라도 해당..
-- PL/SQL 제어 구조 -- 실행 흐름 제어 -- 조건 IF 문과 루프 제어 구조를 사용하여 명령문의 논리적 실행 흐름을 변경할 수 있습니다. -- 조건 제어문 -- IF 문 /* IF condition THEN statements; [ ELSIF condition THEN -- 추가 조건을 적용합니다. statements; ] [ ELSE statements; ] END IF; */ -- 다른 절차적 언어의 IF문의 구조와 유사합니다. -- 조건에 따라 선택적으로 작업을 수행할 수 있습니다. -- 단순 IF문 : IF-THEN-END IF /* IF condition THEN statements; END IF; */ -- 조건이 TRUE일 경우에만 변수에 값을 할당합니다. -- NULL, FALS..
-- PL/SQL BLOCK -- 렉시칼 단위 : PL/SQL 텍스트 행에 포함되는 문자 그룹을 의미합니다. -- 분류 -- 식별자: v_fname, c_percent -- 구분자: ; , +, - -- 리터럴: John, 428, True -- 주석: --, /* */ -- 주의 사항 -- 문자, 날짜 리터럴은 작은 따옴표로 묶어 작성합니다. -- 리터럴 : 식별자로 표현되지 않는 명시적 숫자, 문자, 문자열, 부울 값을 의미합니다. -- 숫자로는 단순 값이나 과학적 표기법을 사용할 수 있습니다. -- 행에 슬래시만 있으면 PL/SQL 프로그램이 종료/실행됩니다. -- SQL 함수 -- 프로시저 문에 사용 가능한 내장 함수 -- 숫자 -- 문자 -- 변환 -- 날짜 -- 기타 -- 사용할 수 없는 함수..