2017-04-19 11 views
0

SQL Serverから抽出され、SASにインポートする必要のあるテキストファイルを受け取りました。問題は区切り文字がコロン ':'SAS - 日付区切り記号と区切り文字が同じテキストファイルをインポートします

このファイルには秒が同じ区切り文字で区切られたdatetimeフィールドも含まれています。

これらのファイルはバックデートされた抽出ファイルなので、これらのテキストファイルの抽出手順を変更することはできません。

サンプルデータ:

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

変数が変化する長さを有するので、私は固定長ファイルとしてインポートすることができません。日時フィールドを別々の日付、時間、分、秒のフィールドにインポートしようとしましたが、一部のレコードで日付が不足しているため、これらのレコードには十分な数の区切り文字がありません。

助けてください。このファイルを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でない場合は表示され区切り文字の数が固定されているか、長さが固定されているだけで一つのフィールドを持っている場合、あなたは、プログラムのことができるようにする必要がありませんヌル問題の周り。

あなたの例では、最後の2つのフィールドを文字変数に読み込んで、それを自分で解析することができます。

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:: 
; 
関連する問題