2014-10-20 43 views
0

通常我會使用proc datasets lib= ; modify來更改數據集中列的格式/信息。但是,當我將此語法應用於基於sql的服務器上的數據集時。 錯誤顯示在`sql-base`服務器上修改SAS中的數據集格式

ERROR: The HEADER/VARIABLE UPDATE function is not supported by the ODBC engine.

我發現了一些文章,可能說明這個問題。這是一個。 http://support.sas.com/kb/37/015.html

此外,無論我在網絡中創建的數據集是什麼,格式/信息/長度都會更改爲它的'default'設置。 E.g date9. -> datetime 22.3

但我仍不明白爲什麼會發生。網絡中是否有預先定義的內容,服務器的體系結構與SAS不是100%兼容?

回答

1

當您修改格式時,您會更改表格。

假設您有一些不同的數據庫(SQL)服務器。示例Oracle,MS SQL,MY SQL。他們都在改變桌子上有自己的方言。 當你寫modify column; ...你正在改變表格。但是SAS不會嘗試使用哪種方言。這就是數據集過程不支持alter table過程的原因。

您可以使用數據庫服務器方言更新該表,但需要從proc sql過程中添加該表。就像它寫在那篇文章

execute(alter table table-name ...specific-Oracle-syntax...)by oracle; 

data9。我想你的意思是date9.。那是SAS格式。其他數據庫服務器可以有或可以沒有這種格式。默認情況下,它們將創建數據庫默認格式

相關問題