프로시저 생성중 막혀서 도움을 부탁드립니다 (__ 0 1 1,305

by Inty [PL/SQL] pl/sql [2014.08.26 21:26:22]


 

프로시저로 테이블을 셀렉팅을 해야 하는데요

테이블 명 규칙이, 테이블명_[년(YYYY)][월(MM)][순번] 으로 되어 있고,

컬럼중에 데이트 형식의 저장된 값이 존재하고 이 값을 기준으로 테이블에 데이터가 생성됩니다

예를 들면, 7일마다 테이블 명 규칙이 변경되는데요 ...

2010년 1월 1일 ~1월7일 날자까지 데이터는,  ABC_2010011 테이블,

2010년 1월 8일~1월14일까지 데이터는, ABC_2010012 테이블,

2010년 1월 15일~1월21일까지 데이터는, ABC_2010013 테이블,

2010년 1월 22일~1월28일까지 데이터는, ABC_2010014 테이블,

2010년 1월 29일~1월31일까지 데이터는, ABC_2010015 테이블에 저장되어 있습니다

데이터를 현재 일자를 기준으로  셀렉팅을 해서 카운팅 후,

다른 테이블에 결과값을 인서트 해야하는데 테이블이 위와 같은 규칙으로 되어 있어서 ..아무리 해도 셀렉팅이 힘드네요 ㅜㅜ

어찌해야 할까요 (__

 

by 마농 [2014.08.27 08:17:21]
DECLARE
    v_sql VARCHAR2(1000);
BEGIN
    v_sql := 'INSERT INTO target(c1, c2, c3, ...) ';
    v_sql := v_sql || ' SELECT c1, c2, c3, ... ';
    v_sql := v_sql || ' FROM abc_' || TO_CHAR(sysdate, 'yyyymmw');
    v_sql := v_sql || ' WHERE ... ';
    v_sql := v_sql || ' AND dt >= TRUNC(sysdate) ';
    EXECUTE IMMEDIATE v_sql;
    COMMIT;
END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입