2009-12-30 171 views
2

我想研究如何從SAS訪問SQLite數據庫。做這件事最簡單的方法是什麼?是否有SAS產品,我們可以許可這樣做?我不想使用ODBC驅動程序,因爲這似乎是很久以前寫的,並不是SQLite的正式組成部分。SQLite與SAS一起使用最簡單的方法是什麼?

+1

讓我看看,如果我得到這個... SQLite的ODBC驅動程序不是SQLite的正式組成部分,所以你想看看,如果你能向SAS支付款項,這樣他們就可以給你一些東西,就像SQLite的ODBC驅動程序一樣......呃,也不是SQLite的正式組成部分? 說真的,我沒有看到使用第三方產品的任何問題,只要產品被足夠多的人使用足夠強大的跡象。 如果您仍對此感到不適,我可能會建議將數據從SQLite導出到您感覺舒適的某個平臺。 – 2009-12-30 22:39:35

+0

我同意。將SQLite數據庫中的數據導出到您可以用滿意的方式訪問的東西。 SAS爲數十個數據源提供(或長時間無SAS)連接器。 – DaveE 2009-12-30 22:42:05

+1

或使用通用的ODBC驅動程序。您可以查看ConnectionStrings.com,看看是否有人已經解決了您的設置 - 我看到6個SQLite參考。 – DaveE 2009-12-31 00:39:20

回答

0

剛剛在我的rss提要中遇到了這個問題,不確定這是不是你想要的。

SAS MACRO IMPORTING SQLITE DATA TABLE WITHOUT ODBC

+0

這是非常好的,但我希望能找到一種方法,以便使用SQlite的引擎,以便更快地處理大型數據集。不過謝謝。 – xiaodai 2010-01-04 01:02:20

+0

鏈接已死亡,無法通過archive.org訪問。編輯:但是,它被引用[宏通信SQLite和SAS沒有ODBC](http://blog.sasanalysis.com/2011/05/macros-communicate-sqlite-and-sas.html?_escaped_fragment_=#!),這可能同樣有用。 – eenblam 2016-12-08 21:54:19

+0

我捅了一下。原文的作者劉文瑞經常發表一篇[新博客](https://statcompute.wordpress.com/)。不幸的是,帖子似乎沒有在2012年之前歸檔。 – eenblam 2016-12-08 22:03:11

4

SAS支持讀取從管道的數據(在UNIX環境中)。本質上,您可以設置一個文件名語句來在主機環境中執行sqlite命令,然後像處理文本文件一樣處理命令輸出。

SAS支持頁面:http://support.sas.com/documentation/cdl/en/hostunx/61879/HTML/default/viewer.htm#pipe.htm

例子:

*---------------------------------------------- 
* (1) Write a command in place of the file path 
*  --> important: the 'pipe' option makes this work 
*----------------------------------------------; 

filename QUERY pipe 'sqlite3 database_file "select * from table_name"'; 



*---------------------------------------------- 
* (2) Use a datastep to read the output from sqlite 
*----------------------------------------------; 

options linesize=max; *to prevent truncation of results; 

data table_name; 

    infile QUERY delimiter='|' missover dsd lrecl=32767; 

    length 
     numeric_id 8 
     numeric_field 8 
     character_field_1 $40 
     character_field_2 $20 
     wide_character_field $500 
    ; 

    input 
     numeric_id 
     numeric_field $ 
     character_field_1 $ 
     character_field_2 $ 
     wide_character_field $ 
    ; 

run; 



*---------------------------------------------- 
* (3) View the results, process data etc. 
*----------------------------------------------; 

proc contents; 
proc means; 
proc print; 
run; 
相關問題