티스토리 뷰



하~~ 진짜 이 문제로 골치 너무 아팠다.


특정 기간을 검색 조건으로 주면, 해당 기간에 맞는 데이터가 select 되게 해야하는 거였는데, 간단한 쿼리였는데도 자꾸만 400에러 (bad request)가 나더라..


더 미치겠는건 로컬에서는 잘 돌아가서 원하는 데이터만 select 되어 조회되는데, 운.영.서.버 에서는 자꾸만 400에러를 뱉었음 ㅠㅠㅠ... (로컬에서 되고, 운영에서 안될때 제일 난감하다.. 회사 서버였기때문에 파일 반영 후 서버 on/off를 내 맘대로 할 수 없으므로 로그 찍기가 힘듦 ㅠㅠ)


처음에는 문제 원인이 뭔지 아예 몰라서 무작정 400에러만 찾아봤다.

400에러 원인은 여러가지있었지만

1) 제일 많았던 건 '파라미터'를 잘못 넘겨줬을 때.

-> 이건 나의 원인은 아니었다. 로컬에서는 똑같은 파라미터를 던져도 잘만 나왔음.


2) 권한인증 문제

-> 이건 안드로이드인 경우에만 그런듯 했음




하루 종일 400에러만 찾아다니다가

결국 내 맘대로 서버 on/off가 가능할때 로그를 집어넣어서 봤더니..


왠걸.. 해당 쿼리를 select 하고는 그 결과를 못 뱉어내서 그 다음 진행이 안된것이다...


그 뒤로도 몇 시간의 삽질 끝에 문제를 찾아냈다...


ORA-01861 : literal does not string 어쩌구..


보니까 이게 쿼리에서 to_date 함수를 쓸 때 많이 나타나는 문제인데.

TO_DATE(TO_CHAR(날짜컬럼, 'yyyy-mm-dd'))

이런식으로 써 있어서 났던 에러임 ㅠㅠㅠ....


TO_DATE(TO_CHAR(날짜컬럼, 'yyyy-mm-dd'), 'yyyy-mm-dd')

이렇게 써줘야 쿼리가 잘 돌아감


좀 더 알아봤더니 이게 JDBC 버전이 높으면 자동형변환이 되어 문제없이 실행되는 거였더라 ㅠㅠ..

toad를 써줘도 형변환이 자동으로 돼서 문제없이 지나갈 수 있던 쿼리임 ㅠㅠ...


추측 상 로컬에서는 해당 쿼리가 문제 없이 돌아간 이유는, 내 로컬의 JDBC버전이 높아서 그런듯 했음 



휴~! 그래도 해결해서 기분은 좋다 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함