테이블명의 일부를 변수로 받아서 SQL처리가 가능할까요? 1 6 1,566

by 클론울프 [2013.10.10 11:05:22]


-- 테이블명 = ac1121_2013

select * from &테이블명

위의 sql은 잘 실행이 됩니다.
하지만

select * from 'AC1121' || &년도

이렇게 실행하면 에러가 나네요
해결책이 없을까요?
by 마농 [2013.10.10 11:18:03]
SELECT * FROM AC1121&년도;

by 클론울프 [2013.10.10 11:31:31]

이렇게 해봤지만 안됩니다 ㅠㅠ


by 마농 [2013.10.10 11:33:10]

전 잘 되는데요.
혹시 언더바 _ 빼고 하셨나요?
AC1121_&년도


by 사랑초 [2013.10.10 11:20:17]
   FOR TBL IN 
              (
                SELECT
                  TABLE_NAME
                FROM USER_TABLES
                WHERE TABLE_NAME LIKE '%SERVICE%'
              )
   LOOP
      EXECUTE IMMEDIATE
         'SELECT
              TO_CHAR(SYSDATE,''YYYY-MM-DD'') AS SDATE
            , COUNT(*) AS CNT
        FROM '|| TBL.TABLE_NAME ||'
        GROUP BY TO_CHAR(SYSDATE,''YYYY-MM-DD'')';
   END LOOP;

이런것도 방법이 되지 않을까 하는데...

by 클론울프 [2013.10.10 11:40:43]
이건 너무 어렵습니다. ㅠㅠ

by 클론울프 [2013.10.10 11:38:02]
원인을 알았습니다. 
마농님 말씀대로 || 빼고 하니까 잘되네요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입