SAS Неверное имя набора данных - PullRequest
0 голосов
/ 17 октября 2018

Мы используем 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_ROLAP является избыточным, но если я просто скажу ROLAP.SALES_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;

Почему я получаю эти ошибки?

1 Ответ

0 голосов
/ 17 октября 2018

Имена библиотек SAS ограничены 8 символами, а имя схемы (в данном случае USER_ROLAP) не является частью имени библиотеки SAS.

 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; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...