임시테이블 사용법 (Temp Table)


MSSQL에서 # 하나로 가능했던 임시 테이블을 오라클에서 변환하기 위해 "유형" 이라 불리는 방식을 사용해야 한다.





OBJ


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE OR REPLACE TYPE OBJ_STKMOVE_REQ_HDR_SEL_TYPE AS OBJECT 
/* TODO enter attribute and method declarations here */ 
 
    IDENT                NUMBER,      
     NO_GIREQ             NVARCHAR2(20),
     DT_GIREQ              NVARCHAR2(8),
     CD_QTIOTP          VARCHAR2(3),
     NM_QTIOTP          VARCHAR2(20),
     CD_PLANT              NVARCHAR2(7),
     NM_PLANT              NVARCHAR2(50),
     CD_DEPT            NVARCHAR2(24),
     NM_DEPT            NVARCHAR2(50),
     NO_EMP                NVARCHAR2(10),
     NM_KOR                NVARCHAR2(40),
     CD_PARTNER          VARCHAR2(20),
     NM_PARTNER            NVARCHAR2(100),
    DC_RMK              VARCHAR2(100)
    
);
cs


TYPE을 선언하여 받아들일 임시 테이블의 구조를 선언한다.





임시 TABLE 생성


1
2
create or replace TYPE TBL_STKMOVE_REQ_HDR_SEL_TYPE
    AS TABLE OF OBJ_STKMOVE_REQ_HDR_SEL_TYPE;
cs


해당 테이블을 유형으로 선언한다.





사용예


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- 선언부
SELECT_TABLE TBL_STKMOVE_REQ_HDR_SEL_TYPE;
 
 
-- 임시 테이블에 데이터 담기
SELECT
        OBJ_STKMOVE_REQ_HDR_SEL_TYPE (
        ROW_NUMBER() OVER (ORDER BY A.DT_GIREQ DESC, A.NO_GIREQ DESC),
        A.NO_GIREQ,
        A.DT_GIREQ,
        A.FG_GIREQ,                
        NVL(EJ.NM_QTIOTP, ''),    
        A.CD_PLANT,
        B.NM_PLANT,
        A.CD_DEPT,
        C.NM_DEPT,
        A.NO_EMP,
        D.NM_KOR,
        NVL(A.CD_PARTNER, ''),                
        NVL(PA.LN_PARTNER, ''),            
        NVL(A.DC50_PO,'')          
        )
        bulk collect INTO SELECT_TABLE     
 
 
 
-- 
SELECT
        *
    FROM
        TABLE(SELECT_TABLE)
    WHERE
        IDENT >= V_STR_SEQ
    ORDER BY
        IDENT
cs





이 글을 공유하기


댓글(0)

Designed by CMSFactory.NET