在`sql-base`服务器上修改SAS中的数据集格式

时间:2014-10-20 02:22:33

标签: sql format sas

通常我会使用proc datasets lib= ; modify来更改数据集中列的格式/信息。但是当我将此语法应用于基于sql的服务器上的数据集时。 错误显示

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 个答案:

答案 0 :(得分: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格式。其他数据库服务器可以具有或不具有此格式。默认情况下,它们将创建数据库默认格式。