퇴근5분전



DECLARE
    DT1 DATE := TO_DATE( '201001' , 'YYYYMM');
    DT2 DATE := TO_DATE( '201002' , 'YYYYMM');
    CNT INT := MONTHS_BETWEEN( DT2, DT1) + 1;
    IDX INT := 0;
    DT  DATE;
BEGIN

    WHILE IDX <= CNT LOOP
   
      DBMS_OUTPUT.PUT_LINE( IDX );
  
      DT := ADD_MONTHS( DT1, IDX );
      
      INSERT INTO 임시테이블
      VALUES ( DT );
      
      IDX := IDX + 1;
     
      EXIT WHEN IDX > CNT;

    END LOOP;

    SELECT YMD FROM 임시테이블; COMMIT;              -- INTO를 요구한다.

END;

    SELECT YMD FROM 임시테이블;  COMMIT;              -- 정상적인 위치

 

 위 쿼리는 작업 중 MS-SQL에 익숙해진 생각에서 시작했다. 

 항목별 기간 데이타를 만들기 위해 사용 될 기간테이블로 항목별 테이블과 크로스 조인을 통해 데이타를 생성하려는 목적으로 임시테이블을 토드에서 테스트 하기 위해 만들어진 스크립트 임.

 팀장님께서 말씀하시는 데로는 INTO요구하는 곳에서 나오는것은 맞다고 한다. 어딘가 담아야 된다고??  하심.

오라클이 1개의 쿼리만을 허용한다고 얘기는 얼핏 들었지만... 위 같은 상황일거란 생각은...

정상적인 위치로 옮겼을경우 F5를 통해 결과를 얻을수 있지만.  F9를 통해서는 여전히 문법 오류를 반환한다.

아 특이해...

이번 플젝 성패는 오라클을 얼마나 빨리 습득하느냐에 따라 결판날듯 한뎁... 오라클 검색하면 왜케 어렵게 보이는지...

MS-SQL이 쉽다는걸 다시 느꼈다.