이전 회사가 특이하게도 데이타의 (논리적인) 정합성을 검사하지 않았었다
예를들어 판매가 = 결제금액 + 할인금액 정도에 간단한 수식은 맞아 떨어져야하는데
문제가 생겼다던지 아니면 고객센타에서 실수를 했다던지 해서 금액이 안맞는 주문을 계속 방치하고 있었다.
체크하는 프로그램 만든는것도 일이라서 개발 공수 없이 가장 쉽게 체크하는 방법을 적용했었다.
#!/bin/csh
setenv LANG ko
set SQLPLUS = "sqlplus 아이디/패스워드@ORCL"
$SQLPLUS << END >>& /dev/null
INSERT INTO 문자발송TABLE a
(전화번호, 내용)
SELECT 전화번호, 오류명 || 오류횟수
FROM 발송대상자TABLE b, (
—————————————–
– 모니터링쿼리영역
—————————————–
SELECT ‘이런저런문제’ as 오류명, count(1) as 오류횟수
FROM (
어쩌구저쩌구
)
—————————————–
)
WHERE ( b.발송그룹 = ‘그룹명’ or b.발송대상 = ‘대상명’ )
AND 오류횟수 > 임계치(0);
COMMIT;
END
$SQLPLUS 에서 END까지 복사해 뒤에 붙이면 여러쿼리를 검사할 수 있고
cron에는 하루에 두번 오전 8시와 오후 2시 (출근전에 한번 업무중에 한번)
보통 임계치는 0으로 했다.
문장사이에 빈 줄바꿈이 있는 경우에는 동작안해서 빈줄을 없앴다.
시스템 바뀌고는 아마 안할꺼다.
문제를 들추는건 문제를 만들었다고 보니까
만들지 않고 덮어두는게 상책이라 생각하니까…