view 내부에 테이블명을 변수로 처리 가능한가요?? 0 3 2,204

by 배정환 [SQL Query] [2011.02.15 15:08:30]



다음과 같은 뷰가 하나 있습니다.

CREATE OR REPLACE FORCE VIEW PRODDTA.FV55WF01
AS

SELECT * FROM TBL1
UNION
SELECT * FROM TBL2
UNION
SELECT * FROM TBL3
;


위 처럼 유니온으로 되어 있는 것을 테이블명을 변수로 처리 가능한지 문의 드립니다.

예를 들면 TBl_TABLE 에 테이블 명을 넣어주고..

CREATE OR REPLACE FORCE VIEW PRODDTA.FV55WF01
AS

SELECT * FROM (SELECT TBL_NAME FROM TBL_TABLE)

;


요렇게 처리 가능한지요. (위 처럼 해봤는데 안돼네요 =ㅅ=;;;;)

조언 부탁 드립니다. ('')(..) 꾸벅..


참고로 꼭 VIEW 로 처리해야 하는 상황입니다.


by camela [2011.02.15 16:24:33]
왜 TBl_TABLE 에 테이블 명을 넣어서 조회를 하시려는지요?
위의 union 으로 된 쿼리를 중복되는 것 없게 적당히 수정해서 union all 로 쓰시면 될 듯 한데요.

by 배정환 [2011.02.15 16:28:59]
네 조금더 자세하게 말씀 드리면 TBL1, TBL2, TBL3 도 VIEW 로 만들어져 있습니다. 3개의 뷰를 UNION 해서 처리 하려니 데이타가 너무 많아 상황에 맞게 뷰를 선택하게 하려고 하는 것입니다.

by camela [2011.02.15 16:50:40]
3개의 뷰 중에서 어느 하나만 사용하신다면 조건에 따라 어느 하나의 쿼리만 실행되도록 하시면 될지 않을까요...

SELECT * FROM TBL1
where 1 = :조건
UNION ALL
SELECT * FROM TBL2
where 2 = :조건
UNION ALL
SELECT * FROM TBL3
where 3 = :조건
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입