問題描述:
作業系統環境是 Win7 64 與 SAS 9.3 64位元,Office 為 2003 版的,使用以下方式讀取或匯出 Excel 或Access的檔案
- Import Wizard
- Proc import 或Proc export
- PROC IMPORT DBMS=EXCEL
DATAFILE= "\directory\filename.xls"
OUT= WORK.cdc REPLACE;
SHEET="Sheet1";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN; - Libname
- libname myref "\directory\filename.xls";
ERROR: Connect: 類別未登錄
ERROR: Error in the LIBNAME statement.
ERROR: Error trying to establish connection: Unable to create Data Source.: Class not registered此狀況常見於剛換系統,以前寫的sas碼都變得無法執行。
ERROR: Error in the LIBNAME statement.
解決方式:
- 換回 SAS 9.3 的 32位版,
但工程較大 ,但也一樣要安裝SAS PC Files Server - 使用SAS PC 檔案伺服器(SAS PC Files Server)來讀取檔案,建議SAS 64位元用戶一定要裝。
- 安裝方式請參考 SAS® 9.3 FOUNDATION for Windows 安裝導引
- 安裝過程中,一定要選擇讓 SAS PC Files Server隨windosw 自行啟動,否則後續每次叫檔案要自行到「所有程式」手動啟動
- 讀檔或匯出檔案的程式碼要稍微改如下 libname myref pcfiles server="localhost"
port=9621 path="\directory\filename.xls";
proc import dbms=excelcs
datafile='\directory\filename.xls'
out=sas-data-output-filename replace;
sheet='sheet-name';
server="localhost";
port=9621 ; run;
如此,只要更動少部分的程式即可!
- 如果有進一步問題,可參考:http://support.sas.com/kb/33/228.html