Отображение библиотеки SQL-сервера в SAS - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь отобразить источник набора данных, к которому я обычно обращаюсь, используя синтаксический анализ SQL как библиотеку.

Ниже приведен синтаксический анализ SQL кода, который я использую для доступа к таблице

proc sql noprint;
  connect to ODBC (DSN='Location1' );

  create table test as 
  Select *
    from Connection to ODBC 
       (
         Select *
           from CentralDB.dbo.Table_i_want
       ) 
  ;

  disconnect from ODBC
;
quit;

А ниже приведено утверждение libname, которое я пытался написать

LIBNAME mylib ODBC  DATASRC='Location1'   SCHEMA=dbo  ;

Приведенный выше оператор не отображает его в правильном месте, куда я помещаю часть CentralDB?

Может ли кто-нибудь помочь мне создать из этого утверждение libname?

Спасибо

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Если у вас есть сервер метаданных: всегда лучше попросить администратора SAS зарегистрировать нужную библиотеку и таблицы в метаданных / папках SAS, чтобы у вас был постоянный и стандартный способ доступа к ним.

Быстрое решение:

Используйте имя библиотеки ниже и обновите схему, пользователя и пароль

LIBNAME mylib ODBC DATASRC=location_1 SCHEMA=dbo USER=sql user PASSWORD="xxx";

На следующем шаге будут перечислены таблицы в библиотеке

proc datasets lib=mylib ;
quit;
0 голосов
/ 04 мая 2018

Я всегда решаю построить строку подключения. У меня нет примера под рукой, но вы должны быть в состоянии построить строку, которая определяет базу данных CentralDB и схему dbo.

Это будет выглядеть примерно так:

libname mylib odbc noprompt='Driver={SQLServer};Server=Your_Server_Name; Database=CentralDB;Schema=dbo;Uid=Your_Username; Pwd=Your_Password;';
0 голосов
/ 04 мая 2018
libname mydblib odbc
   noprompt="uid=testuser;pwd=testpass;dsn=sqlservr;"
   stringdates=yes;

proc print data=mydblib.customers; 
   where state='CA';
run;
...