Unix SAS无效的数据集名称

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

我们正在使用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_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吗