通常我会使用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%兼容?
答案 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格式。其他数据库服务器可以具有或不具有此格式。默认情况下,它们将创建数据库默认格式。