테이블 A에 1,2,3,4,5,6,7 이라는 컬럼이 있습니다.
1,2,3 에는 그냥 고정값 a,b,c,가 각각 들어가고
4에는 해당 날짜 시간
5,6,7에는 5에는 4에서 적힌 년, 6에는 4에서 찍힌 월,7에는 4에서 찍힌 일을 넣을려고 합니다.
1 | 2 | 3 | 4 | 5 | 6 | 7 |
a | b | c | 2009-09-05 00:00:30 | 2009 | 09 | 05 |
a | b | c | 2009-09-05 00:01:00 | 2009 | 09 | 05 |
a | b | c | 2009-09-05 00:01:30 | 2009 | 09 | 05 |
.
.
.
.
이런식으로 해서 30초 4컬럼에 30초 간격으로 오늘 날짜 까지 데이터를 30초 간격으로 넣어줄려고 하는데;;
어떻게 해야 하는지 모르겠네요.;;
데이터 출력을 위해서 임의의 값을 넣는건데.. 5,6,7 컬럼은 4의 값을 넣어야하고;;
2009년 9월부터 해서 오늘 일까지 30초 간격으로 데이터 넣는 방법좀 가르쳐주세여.ㅜ_ㅜ
데이터가 너무 많아서 인서트 적기는 힘드네요..ㅜ_ㅜ
답변1
INSERT를 해주는 프로시저를 작성하신 후.. 실행 시키면 됩니다..
CREATE OR REPLACE PROCEDURE SP_INSERT_TEST (
IN_STRT_DATE IN VARCHAR2 --시작일을 인자값으로 넣어줌 (2009-09-01)
)
IS
V_STRT_TIME DATE;
V_NOW_TIME DATE;
V_NOW_TIME DATE;
BEGIN
-- 시작일 정의
V_STRT_TIME := TO_DATE(IN_STRT_DATE || '00:00:00', 'YYYY-MM-DD HH24:MI:SS') ;
LOOP
--데이타 INSERT
BEGIN
INSERT INTO KWON_TEST0
VALUES (V_STRT_TIME, TO_CHAR(V_STRT_TIME, 'YYYY'), TO_CHAR(V_STRT_TIME, 'MM'),TO_CHAR(V_STRT_TIME, 'DD'), 'A');
END ;
V_STRT_TIME := V_STRT_TIME + 0.00035; --30초 증가
EXIT WHEN V_STRT_TIME > SYSDATE ; --30초 씩 증가한 값이 현재일자 보다 크면 LOOP OUT
END LOOP;
COMMIT ;
END SP_INSERT_TEST;
답변2
먼저 테이블을 생성해줍니다.
create table t1(col1 varchar2(1),
col2 varchar2(1),
col3 varchar2(1),
col4 date,
col5 varchar2(4),
col6 varchar2(2),
col7 varchar2(2));
그리고 insert하려는 쿼리의 row수가 얼마나 되는지 알아봅니다.
from dual;
위 쿼리의 결과의 정수부분만 아래 쿼리의 level 뒤에 넣어줍니다.
select 'a','b','c',
to_date('2009-09-05 00:00:30','YYYY-MM-DD HH24:MI:SS')+(level-1)/24/60/60*30,
to_char(to_date('2009-09-05 00:00:30','YYYY-MM-DD HH24:MI:SS')+(level-1)/24/60/60*30, 'YYYY'),
to_char(to_date('2009-09-05 00:00:30','YYYY-MM-DD HH24:MI:SS')+(level-1)/24/60/60*30, 'MM'),
to_char(to_date('2009-09-05 00:00:30','YYYY-MM-DD HH24:MI:SS')+(level-1)/24/60/60*30, 'DD')
from dual
connect by level <= 위 결과의 정수부분 넣는 곳;
PS) 참고로 날짜가 년월일밖에 나오지 않는다면 아래와 같이 세션의 날짜포맷을 변경해줍니다.
도움이 되셨길....
'SQL > Query' 카테고리의 다른 글
[Oracle] 해당 데이터에 중복값 카운트를 구하는 쿼리 (0) | 2014.10.15 |
---|---|
매출월별 전월대비 증감,누적금액 구하기 SQL (0) | 2014.09.05 |
[oracle] to_char, to_date (0) | 2014.08.13 |
[ORACLE] 시간 더하기 빼기 (0) | 2014.08.13 |
Oracle | 누적합계(단계별 합계) 구하기 (0) | 2014.07.22 |
SQL에서 연도별 현황을 그룹함수를 써서 카운트 (0) | 2014.07.22 |
[본문스크랩] 오라클 에서 MS-SQL 쿼리문, 함수 차이점 (0) | 2014.06.11 |
[본문스크랩] 오라클 모니터링 하기 위한 쿼리 2 (0) | 2014.06.11 |