Ligar o SAS a uma base de dados do servidor SQL da Microsoft

gostaria de ligar o SAS a uma base de dados do servidor SQL da Microsoft, mas não consegui.

Já tenho uma ligação à base de dados usando uma autenticação NT.

por exemplo, quando quero ligar o r (o sofware estatístico) ao db, faço isso

Ch_db < - odbconnect ("sql_nt")

Mas quando faço isso no SAS, não funciona.

LIBNAME SQL ODBC DSN= 'sql_nt';

Tenho esta mensagem de erro:

erro: A Libname SQL não é atribuída. Erro: Erro na 'LIBNAME' instrucao. Erro 22-7: nome da opção inválida SQL_NT.

Provavelmente cometi um erro estúpido, mas não o vejo.

Author: marc_s, 2013-05-22

3 answers

No SAS para fazer uma ligação ODBC ao servidor SQL; Primeiro faça um utilizador DSN Usando Windows ODBC Data Source Administrator . Eu uso o cliente nativo do servidor SQL e os valores por omissão.

EM SEGUIDA, NO SAS EXECUTAR A SEGUINTE DECLARAÇÃO

libname mySasLib odbc datasrc='myUserDSN';

Em alternativa, na interface da janela do SAS Explorer, escolha novo para invocar a janela da nova biblioteca.

Note que as fontes DSN na sua máquina serão listadas na lista da fonte de dados.

Os campos ID do utilizador, Senha e opções são opcionais e são deixados em branco para a segurança integrada do Windows.

New Library dialog;

Subseqüentemente -- para obter o poder da passagem SQL -- aqui está a sintaxe para criar uma visão virtual no trabalho; este é um incrível impulso de desempenho para a minha situação.

proc sql;
connect to ODBC as mycon (datasrc='myUserDSN');
create view one as
select colA, colB from connection to mycon
(select colA, colB from tableInDataSrc order by colA);
disconnect from mycon;
quit;
Então algo do género:
proc univariate data=one;
by colA;
histogram colB;
run;
 3
Author: subsci, 2015-04-28 06:17:13
Olha para esta página.: http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001355231.htm Especificamente, acho que devias tentar desta maneira.
libname mydblib odbc user=testuser password=testpass datasrc=mydatasource;

Normalmente deverá indicar o nome de utilizador e a senha ao ligar-se a um servidor de SQL. Presumo que tenha verificado que a ligação ODBC foi configurada correctamente (como testá-la com R).

Editar dos comentários: Se você está usando autenticação NT, então siga o instruções aqui: (de http://support.sas.com/techsup/technote/ts802.pdf )

libname odbclib odbc noprompt="dsn=sql_NT;Trusted_Connection=yes" 
schema=DBO; 

Eu suspeito que o velho estilo de apenas dsn = "coisas" não funciona em versões mais recentes - embora eu só use OLEDB então eu não tenho 100% de certeza.

 2
Author: Joe, 2013-05-23 13:56:23

Tentei ligar-me usando ambas as declarações SQL do proc e o formato libname. Este último parece mais amigável, aqui está um exemplo:

  LIBNAME testLib ODBC DSN='sqlserver' user=userID pw=xxxxxxxx schema=dbo;
  title 'Testing Libname Option';
  proc contents data= testLib.mytable;
  proc print data=testLib.mytable(obs=10); 
O UserID e o PWD têm de vir da configuração da ligação ODBC.
 0
Author: Ornelas, 2018-01-12 22:03:46