Unix SAS无效的数据集名称
我们正在使用SAS V 9.04.01M4P110916 我正在访问一个定义库中的数据,该库名为:Unix SAS无效的数据集名称,unix,sas,Unix,Sas,我们正在使用SAS V 9.04.01M4P110916 我正在访问一个定义库中的数据,该库名为: %let us_mkt = server='sandntz.bkrgc.net' database='IDP_PRD_US_MARKETING' port=5480 user=&db2_idx. password=&win_pwdx. libname ROLAP netezza &us_mkt. schema=USER_ROLAP data ROLAP.USER_ROL
%let us_mkt = server='sandntz.bkrgc.net' database='IDP_PRD_US_MARKETING' port=5480 user=&db2_idx. password=&win_pwdx.
libname ROLAP netezza &us_mkt. schema=USER_ROLAP
data ROLAP.USER_ROLAP.SALES_TBL;
set ROLAP.SALES_TBL;
run;
我收到以下错误消息:
263 data ROLAP.USER_ROLAP.SALES_TBL;
______________________________
211
ERROR 211-185: Invalid data set name.
264 set ROLAP.SALES_TBL;
265 /* set USER_ROLAP.SALES_TBL; */
266 run;
如果ROLAP是正确定义的库,而USER_ROLAP是正确定义的模式。为什么我会犯这个错误?仅供参考:这些名称的任何其他组合都会导致程序无法读取数据的错误。我知道ROLAP.USER\u ROLAP是多余的,但如果我在数据语句中只说ROLAP.SALES\u TBL:我得到以下错误。下面是我应该如何定义它的文档
263 data ROLAP.SALES_TBL;
264 set USER_ROLAP.SALES_TBL;
ERROR: Libref 'USER_ROLAP' exceeds 8 characters.
ERROR: File WORK.SALES_TBL.DATA does not exist.
265 /* set USER_ROLAP.SALES_TBL; */
266 run;
为什么我会犯这些错误 SAS libnames限制为8个字符,架构名称(在本例中为USER_ROLAP)不是SAS libname的一部分
libname ROLAP netezza &us_mkt. schema=USER_ROLAP;
下面的全部内容的指针是ROLAP或任何您需要在8个字符内定义的内容,其中Netezza是引擎名,而libname中的其他内容与Netezza的服务器数据库名和架构名相关。SAS不能单独理解架构名称
netezza &us_mkt. schema=USER_ROLAP
您的表名将被删除
Rolap.tablename
Edit1:看起来您想将数据移动到SAS,请使用bulkunload=YES选项,如下所示。这将快速将数据从Netezza移动到SAS
data work.SALES_TBL;
SET ROLAP.SALES_TBL (bulkunload=YES);
RUN;
我的答案基本上如下。数据工作.销售_TBL;设置ROLAP.SALES\u TBL;跑谢谢因此,您是在SAS中创建数据集,而不是在netezzaYup中。只要我有权使用它。所以如果我说“data ROLAP.SALES_TBL_2;”它会在Netezza中创建一个表吗?是的,它会在Netezza中创建一个表,但为什么在Netezza中有两个相同的数据集,有where子句或类似的东西呢?我的意思是,在同一个数据库中,会有两个相同的表,这会占用空间,但是没有任何用途,或者您想将某些内容从SAS移动到netezza吗