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
Mas quando faço isso no SAS, não funciona.Ch_db < - odbconnect ("sql_nt")
LIBNAME SQL ODBC DSN= 'sql_nt';
Tenho esta mensagem de erro:
Provavelmente cometi um erro estúpido, mas não o vejo.erro: A Libname SQL não é atribuída. Erro: Erro na 'LIBNAME' instrucao. Erro 22-7: nome da opção inválida SQL_NT.
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.
;
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;
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.
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.