2017-04-19 3 views
0

SQL Server에서 추출한 일부 텍스트 파일을 받았으며이를 SAS로 가져와야합니다. 문제는 구분 기호가 콜론 ':'입니다.SAS - 날짜 구분 기호와 구분 기호가 같은 텍스트 파일을 가져옵니다.

또한이 파일에는 초가 같은 구분 기호로 구분되는 datetime 필드가 들어 있습니다.

이러한 파일은 backdated 추출물이기 때문에 텍스트 파일 추출 절차를 변경할 수 없습니다.

샘플 데이터 : 변수 이후

ABCDEFGHI:2015-06-03 00:00:00.000:XYZ 
DEFGHI::XYZ 
GHIJ:2015-06-04 04:43:19.660:KLMN 

는 다양한 길이, I는 고정 길이 파일로이 문제를 가져올 수있다. 날짜, 시간, 분 및 초 필드에 날짜/시간 필드를 가져 오려고했지만 날짜가 일부 레코드에서 누락되었습니다. 즉, 이러한 레코드에는 구분 기호가 충분하지 않습니다.

도와주세요. 이 파일을 SAS로 성공적으로 가져올 수있는 방법이 있습니까?

답변

0

먼저 소스로 돌아가 파일을 사용 가능한 형식으로 내보내도록 요청하십시오. 문제를 해결할 수없는 경우 문제 필드를 줄 끝으로 옮길 수 있는지 물어보십시오.

data want ; 
    infile 'myfile.txt' dsd dlm=':' truncover ; 
    length var1 $20 var2 $8 datetime 8 ; 
    input var1 var2 datetime anydtdtm23. ; 
    format datetime datetime24.3 ; 
run; 

그러나 당신은 당신이 프로그램 할 수 있어야하지 않을 경우 null을 해당 필드가 고정되어 null이 아니거나 길이가 고정 될 때 나타납니다 여분의 구분 기호와 구분 기호의 수를 포함 할 수 있습니다 단지 하나 개의 필드가있는 경우 문제의 주위에.

예를 들어 마지막 두 필드를 문자 변수로 읽은 다음 직접 구문 분석 할 수 있습니다.

data want ; 
    infile cards dsd dlm=':' truncover ; 
    length var1 $20 datetime 8 var2 $8 ; 
    input var1 str $50.; 
    var2 = scan(str,-1,':'); 
    datetime = input(substrn(str,1,length(str)-length(var2)-1),anydtdtm.); 
    format datetime datetime24.3 ; 
cards; 
ABCDEFGHI:2015-06-03 00:00:00.000:XYZ 
DEFGHI::XYZ 
GHIJ:2015-06-04 04:43:19.660:KLMN 
A:: 
; 
관련 문제