2016-11-14 17 views
0

我如何PostgreSQL的表複製到使用SAS x命令csv文件? SAS有另外一個命令可以讓我這麼做嗎?現在我必須手動運行psql命令行,然後將生成的csv文件導入SAS。我想在SAS中運行此命令,以便可以將它作爲宏的一部分運行。PostgreSQL的表,SAS和背部

+0

你有任何SAS/ACCESS許可,特別是ODBC或OLEDB或類似的?或課程SAS/ACCESS到PostgreSQL ...的http://support.sas.com/documentation/cdl/en/acreldb/69039/HTML/default/viewer.htm#titlepage.htm – Joe

+0

我們(我們合作與SAS)。但我們自己的合作伙伴可能不會。特別是,其他公司想要訪問我們將授予的產品,但他們編寫的所有內容都在postgreSQL/python中。我們不支持Python腳本,BTW。 –

+0

這些始終是在DOS線路上找出所需命令的問題。一旦你有了,使用SAS來執行命令是微不足道的。因此,搞清楚命令行是看看PSQL工具,看看它支持什麼,而不是SAS支持什麼。 – Reeza

回答

0

考慮節約用雙引號的命令行的部分在一個單獨的變量,而不單引號x命令內串聯它。如果從其他語言的變量賦值語句似乎有點不可思議,你不是封閉與任何報價的價值,但它在SAS是有效的:

%let sql = SELECT * FROM "FoundationLayer".location_hierarchy ORDER BY id ASC; 

options xwait; 
x psql -d kyle -tA -c \copy (&sql) to test.csv CSV HEADER; 
run; 

另外,考慮避免使用PostgreSQL的雙引號表(如果你有這樣的控制),因爲它傾向於干擾應用程序代碼,因爲在大多數語言中雙引號需要被轉義。

在Postgres裏,我相信甲骨文,雙引號保留所有權的情況下,從任何偏離像foundationlayer導致錯誤。然而,假若你最初創建表中所有較低的情況下,你可以調用FoundationLayer沒有錯誤,還是需要雙引號爲Postgres docs提到:

關鍵詞和不帶引號的標識符不區分大小寫。