--// 오라클에서 copy_t 테이블 및 데이터 입력 쿼리문
create table copy_t(no number, no2 varchar2(2)) nologging;
insert into copy_t values (1
 ,'01');
insert into copy_t values (2
 ,'02');
insert into copy_t values (3
 ,'03');
insert into copy_t values (4
 ,'04');
insert into copy_t values (5
 ,'05');
insert into copy_t values (6
 ,'06');
insert into copy_t values (7
 ,'07');
insert into copy_t values (8
 ,'08');
insert into copy_t values (9
 ,'09');
insert into copy_t values (10
 ,'10');
insert into copy_t values (11
 ,'11');
insert into copy_t values (12
 ,'12');
insert into copy_t values (13
 ,'13');
insert into copy_t values (14
 ,'14');
insert into copy_t values (15
 ,'15');
insert into copy_t values (16
 ,'16');
insert into copy_t values (17
 ,'17');
insert into copy_t values (18
 ,'18');
insert into copy_t values (19
 ,'19');
insert into copy_t values (20
 ,'20');
insert into copy_t values (21
 ,'21');
insert into copy_t values (22
 ,'22');
insert into copy_t values (23
 ,'23');
insert into copy_t values (24
 ,'24');
insert into copy_t values (25
 ,'25');
insert into copy_t values (26
 ,'26');
insert into copy_t values (27
 ,'27');
insert into copy_t values (28
 ,'28');
insert into copy_t values (29
 ,'29');
insert into copy_t values (30
 ,'30');
insert into copy_t values (31
 ,'31');
insert into copy_t values (32
 ,'32');
insert into copy_t values (33
 ,'33');
insert into copy_t values (34
 ,'34');
insert into copy_t values (35
 ,'35');
insert into copy_t values (36
 ,'36');
insert into copy_t values (37
 ,'37');
insert into copy_t values (38
 ,'38');
insert into copy_t values (39
 ,'39');
insert into copy_t values (40
 ,'40');
insert into copy_t values (41
 ,'41');
insert into copy_t values (42
 ,'42');
insert into copy_t values (43
 ,'43');
insert into copy_t values (44
 ,'44');
insert into copy_t values (45
 ,'45');
insert into copy_t values (46
 ,'46');
insert into copy_t values (47
 ,'47');
insert into copy_t values (48
 ,'48');
insert into copy_t values (49
 ,'49');
insert into copy_t values (50
 ,'50');
insert into copy_t values (51
 ,'51');
insert into copy_t values (52
 ,'52');
insert into copy_t values (53
 ,'53');
insert into copy_t values (54
 ,'54');
insert into copy_t values (55
 ,'55');
insert into copy_t values (56
 ,'56');
insert into copy_t values (57
 ,'57');
insert into copy_t values (58
 ,'58');
insert into copy_t values (59
 ,'59');
insert into copy_t values (60
 ,'60');
insert into copy_t values (61
 ,'61');
insert into copy_t values (62
 ,'62');
insert into copy_t values (63
 ,'63');
insert into copy_t values (64
 ,'64');
insert into copy_t values (65
 ,'65');
insert into copy_t values (66
 ,'66');
insert into copy_t values (67
 ,'67');
insert into copy_t values (68
 ,'68');
insert into copy_t values (69
 ,'69');
insert into copy_t values (70
 ,'70');
insert into copy_t values (71
 ,'71');
insert into copy_t values (72
 ,'72');
insert into copy_t values (73
 ,'73');
insert into copy_t values (74
 ,'74');
insert into copy_t values (75
 ,'75');
insert into copy_t values (76
 ,'76');
insert into copy_t values (77
 ,'77');
insert into copy_t values (78
 ,'78');
insert into copy_t values (79
 ,'79');
insert into copy_t values (80
 ,'80');
insert into copy_t values (81
 ,'81');
insert into copy_t values (82
 ,'82');
insert into copy_t values (83
 ,'83');
insert into copy_t values (84
 ,'84');
insert into copy_t values (85
 ,'85');
insert into copy_t values (86
 ,'86');
insert into copy_t values (87
 ,'87');
insert into copy_t values (88
 ,'88');
insert into copy_t values (89
 ,'89');
insert into copy_t values (90
 ,'90');
insert into copy_t values (91
 ,'91');
insert into copy_t values (92
 ,'92');
insert into copy_t values (93
 ,'93');
insert into copy_t values (94
 ,'94');
insert into copy_t values (95
 ,'95');
insert into copy_t values (96
 ,'96');
insert into copy_t values (97
 ,'97');
insert into copy_t values (98
 ,'98');
insert into copy_t values (99
 ,'99');
commit;
=================================================================
copy_ymd 테이블 생성 및 데이터 입력 스크립트 ( 오라클용)
create table copy_ymd nologging
as
select to_char(sysdate+rownum, 'YYYYMMDD') ymd,
 to_date(to_char(sysdate+rownum, 'YYYYMMDD'), 'YYYY-MM-DD') ymd_date
from tab a, tab b, tab c
where rownum < 100000
union all
select to_char(sysdate+rownum, 'YYYYMMDD') ymd,
 to_date(to_char(sysdate+rownum, 'YYYYMMDD'), 'YYYY-MM-DD') ymd_date
from dual
union all
select to_char(sysdate-rownum, 'YYYYMMDD') ymd,
 to_date(to_char(sysdate-rownum, 'YYYYMMDD'), 'YYYY-MM-DD') ymd_date
from tab a, tab b, tab c
where rownum < 100000
union all
select '00010101' ymd, to_date('00010101') ymd_date from dual
union all
select '99991231' ymd, to_date('99991231') ymd_date from dual;
COMMIT;
=================================================================
copy_yy 테이블 생성 및 데이터 입력 스크립트 ( 오라클용)
create table copy_yy nologging
as
select to_char(1900+rownum) yy from all_objects where rownum < 200
commit;
=================================================================
잘못된 날짜 데이터 찾기
SELECT A.EMPNO, A.ENAME, A.HIREDATE, B.YMD -- TO_DATE(HIREDATE, 'YYYY-MM-DD')
FROM TEST20 A, COPY_YMD B
WHERE A.HIREDATE = B.YMD(+)
 AND B.YMD IS NULL;
 
혹은
SELECT * FROM (
 SELECT A.EMPNO, A.ENAME, A.HIREDATE,
   (SELECT B.YMD FROM COPY_YMD B WHERE A.HIREDATE = B.YMD ) YMD
 FROM TEST20 A
)
WHERE YMD IS NULL;
( TEST20 테이블의 HIREDATE는 VARCHAR2(8) 로 구성되어 있으며, 중간중간 잘못된 데이터가 입력되어 있음)