프로젝트 서버 이전중에 문제가 발생 했다.

로컬호스트 에서는 문제가 없었으나 . 서버 테스트 과정에서 리터럴 형식이 잘못 되었다는 에러 메세지와 함께

제대로 검색이 되지 않았다.

(수정 : 확인결과 서버에서 받는 문자 형식의 리터럴 방식이 일관 되지 않게 된 경우 발생 함. 따라서 모든 데이터 타입 변경시 

되도록이면 

TO_CHAR(컬럼) , 

TO_DATE(컬럼) 이런식으로 쓸것이 아니라 반드시 그 변환 형식을 남기도록 해야 하며 예를 들자면 'YYYYMMDD'

같은 형식을 넣어야만 한다. )

 

TO_DATE(A.DT_FR)

 

이런 형식을 모두

 

TO_DATE(A.DT_FR,"YYYYMMDD")

 

로 바꾸어야만 한다.

 



F====>       TO_DATE ?\((.+?)\)


R====>      TO_DATE\($1,'YYYYMMDD')

 

이다.

 

예외사항 :     TO_DATE(MIN(VAT_DT)) 과 같은 경우 제한식을 ) 으로 두었기 때문에 수작업 해야 한다. 그냥 바꾸면

TO_DATE(MIN(VAT_DT,'YYYYMMDD')) 라 바뀌게 되는데 이 것은 X

TO_DATE(MIN(VAT_DT),'YYYYMMDD') 로 바꿔야 O . 이는 대도록 정규식을 피해야 할것 같다. 정규식을 좀더 수정 하면 될것도 같긴 한데 일단. ; 걍 수업.


추가 . 

TO_DATE(SYSDATE,'YYYYMMDD') 가 안먹힌다.. 지정된 월이 아니라는 에러 메세지만 배터 낸다. 좀 이해가 안되지만 어쩔수 없이 SYSDATE 에 TO_CHAR 을 적용 했더니 해결 되었다. 

TO_DATE(TO_CAHR(SYSDATE,'YYYYMMDD'),'YYYYMMDD') 로 변경.   



 

추신: 

컬럼 네임에 . 들어 가있는 경우도 있기 때문에 이미 바꿔져 있는 것의 경우 ,가 포함 되어 있다. 따라서 구분을 할수 없음으로

변환을 두번 하게 되면 'YYYYMMDD' 가 추가 되게 되니. 하나씩 find 해서 replace 해야 한다.




추가정규식

검색해 보고 맞는것을 사용토록 해야함 


TO_DATE\(?(.[^\,]+?)\)

TO_DATE($1,'YYYYMMDD')



1번째 --> F(find)

2번째 --> R(replace)


TO_DATE\(?(.[^\,]+?)\)


/



TO_CHARW(?(.[^\,]+?)\)

TO_CHAR($1,'YYYYMMDD')



1번째 --> F(find)

2번째 --> R(replace)



Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :