首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAS数据集名称无效

SAS数据集名称无效
EN

Stack Overflow用户
提问于 2018-10-18 04:11:42
回答 1查看 445关注 0票数 1

我们使用的是SAS V 9.04.01M4P110916

我正在访问一个名为的定义库的数据:

代码语言:javascript
复制
%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;

我收到以下错误消息:

代码语言:javascript
复制
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_ROLAP是多余的,但如果我在data语句中只说ROLAP.SALES_TBL,我会得到以下错误。以下是文档所说的我应该如何定义它。

代码语言:javascript
复制
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;

为什么我会收到这些错误?

EN

回答 1

Stack Overflow用户

发布于 2018-10-18 04:17:49

SAS库名称限制为8个字符,并且模式名称(在本例中为USER_ROLAP)不是SAS库名称的一部分。

代码语言:javascript
复制
 libname ROLAP netezza &us_mkt. schema=USER_ROLAP;

下面的指针是ROLAP或你需要的任何东西,定义在8个字符之内,其中netezza是引擎名称,以及libname中与Netezza的服务器数据库名称和模式名称相关的其他内容。SAS不能单独理解架构名称

代码语言:javascript
复制
 netezza &us_mkt. schema=USER_ROLAP

您的表名将为

代码语言:javascript
复制
  Rolap.tablename

Edit1:看起来您想要将数据移动到SAS,然后请使用bulkunload=YES选项,如下所示。这将快速地将数据从Netezza移动到SAS

代码语言:javascript
复制
   data work.SALES_TBL;
   SET ROLAP.SALES_TBL (bulkunload=YES); 
   RUN; 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52862889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档