2015-09-14 64 views
0

我從Oracle(doc文件)中獲取了二進制數據,並將其分爲幾部分(導致長度限制)。 然後我需要把這個二進制數據文件(創建文件) 接下來我要做的:將二進制數據從SAS寫入文件

data _null_; 
    set data; 
    file 'c:\fileout.doc' lrecl=4000; 
    put @1 blob_1 $HEX4000 
     @2 blob_2 $HEX4000  
     @3 blob_3 $HEX4000  
    [etc] 
    ; 
run; 

當我打開它,我看到的二進制代碼。如何將二進制數據放入文件並以正確的方式查看我的文檔?

謝謝。

+0

我認爲這是關係到[這個問題](http://stackoverflow.com/questions/32542486/import-blob-through-sas-from-oracle-db) - 你有沒有得到解決那裏?我認爲這真的重複了這個問題 - 如果你解決了這個問題,這個問題也解決了。 – Joe

+0

它是一種不同的問題。這個問題是關於將數據保存到文件,還沒有從Oracle數據庫獲取數據 – bobby1232

+0

但在我看來,這是同一個根本問題:您不知道如何以可讀格式從blob中獲取數據。 – Joe

回答

1

您需要在FILE語句中使用正確的RECFM。在PUT語句中也使用適當的格式。

data _null_; 
    set data; 
    file 'c:\fileout.doc' RECFM=N ; 
    array blob blob_1-blob_3 ; 
    do i=1 to dim(blob); 
     put blob(i) $char2000. ; 
    end; 
run; 
+0

非常感謝!你能告訴我如何編寫這一步如果我有行數?(需要創建n個不同文件的數字,並且文件名必須是變量的開始 – bobby1232

+0

使用FILE語句的FILEVAR選項來告訴它數據集中的哪個變量具有要寫入的文件的名稱您可能必須具有一個變量,以指示要爲每個觀察記錄多少個字符(字節) – Tom

+0

我擁有它,它是dbms_lob.getlength – bobby1232