📃 DATABASE/ORACLE

    [PL/SQL] DBMS_JOB

    [PL/SQL] DBMS_JOB

    DBMS_JOB잡을 등록하고 관리하는 데 사용되는 시스템 패키지이다. 우선 예제용 테이블을 하나 만든다.12345CREATE TABLE CH15_JOB_TEST( SEQ NUMBER, INSERT_DATE DATE);cs 그리고 이 테이블에 데이터를 INSERT 하는 프로시저를 만든다.1234567891011121314151617CREATE OR REPLACE PROCEDURE CH15_JOB_TEST_PROCIS VN_NEXT_SEQ NUMBER;BEGIN SELECT NVL(MAX(SEQ), 0) + 1 INTO VN_NEXT_SEQ FROM CH15_JOB_TEST; INSERT INTO CH15_JOB_TEST VALUES (VN_NEXT_SEQ, SYSDATE); COMMIT; EXCEPTION..

    [PL/SQL] 파이프라인 테이블함수

    [PL/SQL] 파이프라인 테이블함수

    파이프라인 테이블함수(PIPELINED TABLE FUNCTION) 12345678910111213CREATE OR REPLACE FUNCTION 함수명 (매개변수) RETURN 컬렉션타입 PIPELINEDIS ...BEGIN ... LOOP PIPE ROW(반환데이터); END LOOP; RETURN;END;Colored by Color Scriptercs 예제123456789101112131415CREATE OR REPLACE FUNCTION FN_CH14_PIPE_TABLE (P_N NUMBER) RETURN CH14_NUM_AT PIPELINEDIS VNT_RETURN CH14_NUM_AT := CH14_NUM_AT();BEGIN FOR IDX IN 1..P_N LOOP VNT_RETURN.EXT..

    [PL/SQL] 테이블 함수

    [PL/SQL] 테이블 함수

    테이블 함수여러 로우를 가진 컬렉션을 반환하는 함수.컬렉션 타입을 반환하는데, 연관 배열은 반환하지 못하고, 중첩 테이블이나 VARRAY만 반환가능하다. 사용자정의 테이블 함수일반 사용자정의 함수와 다를 것 없으나, 그 대상이 되는 컬렉션 타입이 먼저 만들어져 있어야한다. 아래는 NUMBER만 이용한 간단한 예시이다. 1CREATE OR REPLACE TYPE CH14_NUM_AT IS TABLE OF NUMBER;cs 1234567891011121314CREATE OR REPLACE FUNCTION FN_CH14_TABLE1 (P_N NUMBER) RETURN CH14_NUM_ATIS -- 컬렉션 변수 선언 VNT_RETURN CH14_NUM_AT := CH14_NUM_AT();BEGIN FOR IDX..

    [PL/SQL] 임시테이블(GTT)

    [PL/SQL] 임시테이블(GTT)

    임시테이블 (GTT, Global Temporary Table)1. 트랜잭션 GTT트랜잭션이 살아있는 동안에만 데이터가 유지됨123456CREATE GLOBAL TEMPORARY TABLE 테이블명( 컬럼1 데이터타입, ...)[ON COMMIT DELETE ROWS];cs 1234567CREATE GLOBAL TEMPORARY TABLE CH14_TRANC_GTT( IDS NUMBER , NAMES VARCHAR2(50) , BIRTH_DT DATE)ON COMMIT DELETE ROWS;cs 1234567891011121314151617181920212223DECLARE VN_CNT INT := 0; VN_CNT2 INT := 0;BEGIN INSERT INTO CH14_TRANC_GTT SELECT..

    [PL/SQL] DBMS_SQL (3) : 응용활용

    [PL/SQL] DBMS_SQL (3) : 응용활용

    DBMS_SQL (3) : 응용활용 BULK INSERT & UPDATE입력할 값을 일반 변수가 아닌 배열 형태에 변수에 담아 놓고 이 변수를 바인드 변수로 연결한다음 DBMS_SQL 패키지로 INSERT문을 실행하면 여러 개의 로우를 한 번에 INSERT 할 수 있다. 12345678910111213141516171819202122232425262728293031323334353637383940414243TRUNCATE TABLE CH13_PHYSICIST; DECLARE VN_IDS_ARRAY DBMS_SQL.NUMBER_TABLE; VS_NAME_ARRAY DBMS_SQL.VARCHAR2_TABLE; VD_DT_ARRAY DBMS_SQL.DATE_TABLE; VS_SQL VARCHAR2(1000);..

    [PL/SQL] DBMS_SQL (2) : 기본활용

    [PL/SQL] DBMS_SQL (2) : 기본활용

    DBMS_SQL (2)기본 활용1. SELECT12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061DECLARE -- 출력 변수 선언 VN_EMP_ID EMPLOYEES.EMPLOYEE_ID%TYPE; VS_EMP_NAME EMPLOYEES.EMP_NAME%TYPE; VS_JOB_ID EMPLOYEES.JOB_ID%TYPE; VS_SQL VARCHAR2(1000); -- 바인드 변수 선언과 값 설정 VS_JOB EMPLOYEES.JOB_ID%TYPE := 'SA_REP'; VN_SAL EMPLOYEES.SALARY%TYPE := 7000; VN_MANAGE..

반응형