ora-01853 에러에 대해 문의 드립니다. 0 8 4,162

by 허접탱이 [SQL Query] ora-01853 [2015.03.19 15:06:00]


안녕하세요.

지금 현재 운영하고 있는 사이트에서 이상한 에러가 발생을 하고 있는데..

문제점을 찾지를 못해..도움을 요청하고자 글을 쓰게 되었습니다.

 

일단 개발 내용은...직원이 업무를 보기 위해 해당 어플리케이션에 로그인을 하고..

업무를 보던중.. 휴식버튼을 누르게 되면.. A란 테이블에 상담원 정보가 쌓이게 됩니다.

직원ID, 휴식 시작 날짜, 휴식 시작 시간 등등...이렇게 남기고..

해당 직원이 다시 휴식을 종료하게 되면 종료 날짜, 종료 시간, 휴식시간 등의 정보를 업데이트 할 수 있도록 개발을

하였습니다.

지금 다른 직원들은 정상적으로 잘 사용을 하고 있어서..

휴식 시작시간, 종료시간, 휴식시간 등의 정보가 잘 insert, update 되는데...

특정 직원만 휴식을 종료 했을때..아래와 같은 에러가 발생을 하면서 update 가 안되고 있습니다.

에러메세지 : ora-01835 일의 초는 0과 86399 사이여야 합니다.

 

업데이트 하는 쿼리문은 아래와 같습니다.

update 테이블 A

set 종료일자 = 'YYYYMMDD', 종료시간 = 'HH24MISS' 

, 휴식시간 = (SELECT TO_CHAR(TO_DATE(TRUNC(MOD(TO_DATE(TO_CHAR(SYSDATE, 'HH24MISS'), 'HH24MISS') - TO_DATE(시작시간, 'HH24MISS'), 1)*24*60*60), 'SSSSS'), 'HH24MISS') from 테이블 A where 조건

where 조건

 

이렇게 작성을 했는데요.. 아무래도 의심가는 부분이 휴식시간 구하는 공식같은데..

잘 이유를 모르겠습니다. 염치없지만 잘 아시는분은 도움 부탁 드립니다.^^

by 임상준 [2015.03.19 15:32:28]

to_date(..... , 'SSSSS') 하기 직전까지 그 직원분의 데이터 값이 얼마가 나오나요?


by 허접탱이 [2015.03.19 15:44:19]

시간대는 다양하게 있습니다.

오늘을 예를 들면 "095723", "111637", 152643" 등등...


by 임상준 [2015.03.19 15:52:19]

아뇨 에러 떨어진다는 그 분의 에러 난 시점의 데이터요..

TRUNC(MOD(TO_DATE(TO_CHAR(SYSDATE, 'HH24MISS'), 'HH24MISS') - TO_DATE(시작시간, 'HH24MISS'), 1)*24*60*60)

여기까지 그 에러 난다는 데이터를 처리하면 얼마가 나오는지..


by 허접탱이 [2015.03.19 16:13:04]

일단 에러가 발생하는 분은 계속 발생을 하고 있으며, 정확한 에러난 시점은 알수가 없습니다.ㅠㅠ

에러가 발생한 시점의 데이터를 기준으로 쿼리문을 실행해보면 아래와 같이 조회됩니다,

시작시간 : 152643, 실행시간 : 033411


by 비주류 [2015.03.19 15:40:08]

휴식관리 프로그램... 무섭네요^^;
특정 사용자가 종료를 안찍고 하루 지난 이후에 처리하면서 나오는 문제는 아닌가요?
시작, 종료 정보가 같은 row 에 있다면 굳이 휴식시간을 관리(업데이트) 해야하나 싶기도 하구요.

 


by 허접탱이 [2015.03.19 15:45:42]

일단 하루가 지나서 발생하는 문제는 아닙니다.

같은날 여러건의 데이터가 있어도.. update가 안되더라구요..


by 도라지요 [2015.03.19 17:13:46]

헝.. 휴식시간관리.. 너무한다 싶어서 한자 적게 되네요;;  임원이나 사장의 휴식시간 아니지.. 출근 일자?시간? ㅎㅎ관리는 어떨까 싶기도 ㅋㅋ 질문과 무관한 답변글이었습니다. ㅠㅠ


by 마농 [2015.03.22 14:48:10]

sysdate 의 시분초에서 에서 시작시간의 시분초를 을 빼고 있는데요?
시작시각이 현재시각보다 큰 모양이네요?
음수가 나오니 범위를 벗어난 듯 하네요.
시분초만을 이용해 빼면 안되구요. 일자까지 포함시켜서 뺴야 하겠죠.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입