MSSQL의 임시테이블(#temp)같은게 오라클에는 없나요?... 답답하네요..ㅠㅠ
프로시져 안에서 임시로 테이블만들어서 사용할수는 없는건가요?
CREATE GLOBAL TEMPORARY TABLE는 프로시져 안에서는 실행도 안되구..
테이블도 자동 DROP안되는거 같네요.
이런 황당할때가...
우선 PL/SQL 내에서 DDL,DCL,TCL의 사용은
가능하지 않습니다.
DDL,DCL,TCL 사용시에 아래와 같은 방법이 가능합니다.
이런식으로 가능합니다.
(Native Dynamic SQL 사용시)
CREATE OR REPLACE PROCEDURE GT_TABLE_INSERT
IS
DML_STR1 VARCHAR2(200);
BEGIN
DECLARE
DDL_STR1 varchar2(200);
DDL_STR1 := 'CREATE GLOBAL TEMPORARY TABLE kkk
(
INVT_CODE VARCHAR(3),
INVT_NAME VARCHAR(20),
PJT_PLAN NUMBER,
PJT_CHNG NUMBER,
PJT_INVT NUMBER
)ON COMMIT PRESERVE ROWS';
EXECUTE IMMEDIATE DDL_STR1;
END;
--.............임시테이블에 insert
DML_STR1 :='insert into kkk values(''1'',''1'',''1'',''1'',''1'')';
EXECUTE IMMEDIATE DML_STR1;
--.............임시테이블에 update등등..
END GT_TABLE_INSERT;
또한 DBMS_SQL 을 이용한 Dynamic SQL 사용으로
도 가능합니다.
참고자료 :
http://211.106.111.2:8880/bulletin/list.jsp?seq=11721&pg=0&sort_by=last_updated&keyfield=subject&keyword=native