SQL * Loader 스크립트에 대한 제어 파일을 만들려고합니다. NOT NULL로 정의 된 날짜 열이 있습니다. 파일에서 들어오는 값이 비어 있으면 현재 날짜를 사용하도록 스크립트를 설정해야합니다. 몇 가지 방법을 시도했는데 아래 예제와 같이 SQL 로더를 실행할 때 오류 아래에 계속 표시되지만 형식을 선택하면 이중에서 선택합니다.SQL * Loader - 들어오는 값이 비어있는 경우 sysdate 사용
SQLLoader에서 어떻게 설정해야합니까?
PROGRAM_CHANGE_TS POSITION(37:47) DATE "decode(length(trim(:PROGRAM_CHANGE_TS)), 11, to_date(:PROGRAM_CHANGE_TS,'yymmddHH24:MI'),to_date(sysdate,'yymmddHH24:MI'))",
PROGRAM_CHANGE_TS POSITION(37:47) DATE "NVL(Decode(:PROGRAM_CHANGE_TS,'00/00/0000',TO_DATE('01/01/2010','dd/mm/yyyy'),TO_DATE(:PROGRAM_CHANGE_TS,'dd/mm/yyyy')),TO_DATE('01/01/2010','dd/mm/yyyy'))",
오라클 디코드 예 ORA-00907 : 누락 된 오른쪽 괄호
select decode(length(trim(:PROGRAM_CHANGE_TS)), 11, to_date(:PROGRAM_CHANGE_TS,'yymmddHH24:MI'),to_date(sysdate,'yymmddHH24:MI')) from dual
또는
select NVL(Decode(:PROGRAM_CHANGE_TS,'00/00/0000',TO_DATE('01/01/2010','dd/mm/yyyy'),TO_DATE(:PROGRAM_CHANGE_TS,'dd/mm/yyyy')),TO_DATE('01/01/2010','dd/mm/yyyy')) from dual
내가 SQL에서 사용할 수 있도록해야합니까 어떤 변화
를 작동 로더 제어 파일?
죄송합니다. 실수로 위의 의견을 추가했습니다. 나는이 NVL을 테스트했다. 감사. NVL 부분을 사용했는데 이제는 ORA-00907 오류가 발생하는 문제가 있습니다. 그 오류는 이제 제거되었습니다. 들어오는 데이터가 공백 일 때 아래의 오류가 계속 발생합니다 (열 PROGRAM_CHANGE_TS). ORA-01858 : 수치가 아닌 문자가 발견되었습니다. 어떻게 그 부분을 해결할 수 있습니까? 또한 한 가지 다른 질문 - 비어 있지 않은 데이터는 2 자리 연도이므로 모두 20YY로 삽입됩니다.이 값을 어떻게 변경하여 70보다 높은 값을 19YY로 변환 할 수 있습니까? – adbdkb
'create table' 문을'* .ctl' 파일에 게시하고 샘플 데이터의 몇 개 레코드를 게시하면 더 잘 도와 줄 수 있습니다. –