2013-07-25 17 views
8

UNIX envでSASを使用していますが、データセットの列名のみを表示したいとします。私はprocの内容とprocの印刷を試みましたが、私はそれが私のパテの画面をいっぱいにし、最終的に情報が失われるので、私が欲しくないたくさんの他の情報を挙げています。データセットの列名のみを一覧表示します

また、私はこのことをsrmメタデータを取得しようとしましたが、それはどちらも機能しません。 は、私が試した:あなたは、列名を取得するには、間違った辞書テーブルを使用している

2? proc sql; 
    select * 
from dictionary.tables 
where libname='test' and memname='sweden_elig_file_jul'; 
quit; 
    5? 
NOTE: No rows were selected. 

    6? 
NOTE: PROCEDURE SQL used (Total process time): 
     real time   0.27 seconds 
     cpu time   0.11 seconds 

答えて

17

...

 
proc sql ; 
    select name 
    from dictionary.columns 
    where memname = 'mydata' 
    ; 
quit ; 

または使用PROCの内容を

ここ
 
proc contents data=mydata out=meta (keep=NAME) ; 
run ; 
proc print data=meta ; run ; 
+5

I二クリスJの答え。しかし、 'dictionary.columns'のやり方はお勧めできません。SAS環境に多数のテーブルがある場合は、' proc contents'よりも何倍も遅くなる可能性があります。 –

2

は、私が使用した一つです少し前の答えと同じように、情報を少し追加して列のリストを取得する前に、keepオプションを追加することができます。これは、メタデータサーバーへの接続を作成する方法を示しています。

libname fetchlib meta 
    library="libraryName" metaserver="metaDataServerAddress" 
    password="yourPassword" port=1234 
    repname="yourRepositoryName" user="yourUserName"; 

proc contents data=fetchlib.YouDataSetName 
    memtype=DATA 
    out=outputDataSet 
    nodetails 
    noprint; 
run; 
0
proc sql; 
    select * 
    from dictionary.tables 
    where libname="TEST" and memname="SWEDEN_ELIG_FILE_JUL"; 
quit; 
+1

スタックオーバーフローへようこそ!どのように動作するかを説明するために、この回答をより良くすることができます。 – dorukayhan