2017-10-27 7 views
1

.csv 파일을 읽는 동안 SQL * Loader가 잘못된 날짜 (0000-00-00 00:00:00)를 만날 때마다 테이블에 NULL을 삽입해야합니다.SQL * Loader의 If-else 케이스

csv에 제공된 잘못된 날짜는 항상 0000-00-00 00:00:00입니다.

잘못된 날짜와 올바른 날짜를 처리하는 케이스를 찾는 데 도움이 필요합니다. (: MI : SS YYYY/MM/DD의 HH24) 0000-00-00 00:00 나쁜 형식 (에서

  • 날짜 올바른 형식으로

    1. 날짜 :

      두 가지 경우가 있습니다 : 00)

    처음에는 SQL 제어 파일에 다음과 같이 간단한 문이 있었지만 이제 잘못된 날짜를 처리하기 위해 사례를 추가해야합니다.

    START_DATE DATE "YYYY/MM/DD hh24:mi:ss" NULLIF (START_DATE = "NULL").

    위의 두 가지 경우를 모두 처리하는 SQL * Loader 문이 필요합니다.

  • +0

    실제 질문은 무엇입니까 –

    +0

    SQLDR이 잘못된 날짜를 직면 할 때마다 열에 Null을 삽입해야합니다 : 0000-00-00 00:00:00 .... Start_date ... 열에 두 가지 경우가 있습니다 올바른 날짜 형식이고 한 0000-00-00 00:00:00 – MelbaMartis

    답변

    1

    파일의 모든 데이터는 본질적으로 다른 데이터 유형으로 확인 될 때까지 문자열입니다. 나는 "나쁜"날짜 형식이 좋은 최신의 것과 다른 것을 조금 걱정

    START_DATE "TO_DATE(NULLIF(:START_DATE, '0000-00-00 00:00:00'), 'yyyy/mm/dd hh24:mi:ss')" 
    

    : 그래서, 당신은 날짜로 변환하기 전에 잘못된 데이터에 대한 문자열로 취급 할 수 . 이것은 예를 들어 서로 다른 두 시스템에서 온 데이터 나 소스 시스템에 날짜로 저장되지 않은이 필드를 인식하지 못하고 있다는 것을 나타냅니다.

    가능한 경우이 데이터가 생성되는 방식과 잘못된 날짜의 의도가 의미하는 바를 두 번 확인합니다.