[SQL] 어떻게 오라클에서 일정 테이블을 채우는?
SQL어떻게 오라클에서 일정 테이블을 채우는?
나는 (그것이 어떤 년까지 할 수있다) I 2011에서 2013 년부터 올해의 모든 일에 채우려 오라클 DB의 달력 테이블을 유지하고자합니다. 내가 어떻게 할 수 있습니까?
내 DB 테이블 컬럼을 가지고 있으며, 예를 들어 데이터 세트가 고려 :
S.No Cal_Dt DayName
1 01-01-2011 Monday
2 02-01-2011 Tuesday
3 03-01-2011 Wednesday
등등.
내가 더 이곳에서만 Cal_Dt에 관심 있어요 (DAYNAME는 선택 사항입니다).
해결법
-
==============================
1.이 그것을 할 수있는 간단하고 쉬운 방법입니다
이 그것을 할 수있는 간단하고 쉬운 방법입니다
with calendar as ( select :startdate + rownum - 1 as day from dual connect by rownum < :enddate - :startdate ) select rownum as "S.No", to_date(day,'dd_mm_yyyy') as "Cal_Dt", to_char(day,'day') as "DayName" from calendar
-
==============================
2.
with calendar as ( select rownum - 1 as daynum from dual connect by rownum < sysdate - to_date('1-jan-2010') + 1 ) select to_date('1-jan-2010') + daynum as monthdate from calendar ;
-
==============================
3.
declare v_date date := to_date('20110101','yyyymmdd'); begin while v_date < sysdate + 720 loop insert into calender values ( v_date, to_char(v_date,'DAY')); v_date := v_date + 1; end loop; commit; end; /
이것은 가장 좋은 방법이 아닙니다 당신은 Allesandro 로시의 솔루션을 사용해야합니다. 오라클 9i에 또는 이전 버전을 사용하고 큰 테이블을 채우는있는 경우에만 유용 할 수 있습니다.
from https://stackoverflow.com/questions/8374959/how-to-populate-calendar-table-in-oracle by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떤 방법은 전체 텍스트와 같은 이노에 검색을 달성하기 위해 (0) | 2020.05.05 |
---|---|
[SQL] MySQL의 피벗 테이블의 열 데이터 행으로 (0) | 2020.05.05 |
[SQL] 이유는 다음 SELECT 표현에 열 별칭을 사용할 수 없습니다? (0) | 2020.05.05 |
[SQL] 사용 액세스 SQL은 그룹화 된 순위를 할 수 (0) | 2020.05.05 |
[SQL] 어떻게 SQL에서 두 날짜 사이에 "화요일"의 수를 계산하는? (0) | 2020.05.05 |