我想将SAS连接到Microsoft SQL Server数据库,但我没有成功。
我已经使用NT身份验证建立了数据库连接。
例如,当我想将R(统计软件)连接到数据库时,我会这样做
ch_db< - odbcConnect(“sql_nt”)
但是当我在SAS中这样做时,它不起作用:
LIBNAME sql ODBC DSN ='sql_nt';
我有以下错误消息:
错误:未分配Libname SQL。错误:LIBNAME出错 声明。错误22-7:无效的选项名称SQL_NT。
我可能犯了一个愚蠢的错误,但我没有看到它。
答案 0 :(得分:3)
在SAS中建立ODBC连接到SQL SERVER; 首先使用 Windows ODBC数据源管理员制作 用户DSN 。我使用SQL Server Native Client和默认值。
然后在SAS执行以下声明
("(a_|an_)")
另外,在SAS Explorer窗口GUI中,选择新建以调用新库对话框。
请注意,您计算机上的DSN来源将列在数据源下拉列表中。
用户ID,密码和选项字段是可选的,对于Windows Integrated Security,它们保留为空白。
;
SUBSEQUENTLY - 获得SQL传递的强大功能 - 这是在Work中创建虚拟视图的语法;这对我的情况来说是一个不可思议的性能提升。
libname mySasLib odbc datasrc='myUserDSN';
然后像:
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;
答案 1 :(得分:2)
看一下这个页面: http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001355231.htm
具体来说,我认为你应该这样试试:
libname mydblib odbc user=testuser password=testpass datasrc=mydatasource;
通常,您应该在连接到SQL Server时提供用户名和密码。我假设您已经验证ODBC连接已正确设置(例如使用R进行测试)。
从评论中编辑: 如果您使用的是NT身份验证,请按照此处的说明操作:(来自http://support.sas.com/techsup/technote/ts802.pdf)
libname odbclib odbc noprompt="dsn=sql_NT;Trusted_Connection=yes"
schema=DBO;
我怀疑只有dsn =“stuff”的旧样式在新版本上不起作用 - 尽管我只使用OLEDB,所以我不是百分百肯定。
答案 2 :(得分:0)
我尝试使用proc sql语句和libname格式进行连接。后者似乎更加用户友好,这是一个例子:
subscribeOn
UserID和PWD需要来自ODBC连接设置。
答案 3 :(得分:0)
我是SAS新手,尝试创建“用户DSN”浪费了很多时间。 值得庆幸的是,我向公司的管理团队咨询了一下。 一位SAS管理员回答 “在SAS服务器端配置了DSN” 她要求提供“ MSSQL数据库和SAS服务器名称”,并为我创建了DSN。
建立连接后,我在查询中使用了
(P.S:我使用Windows身份验证)
LIBNAME sql odbc = 'xxxxxx' ;
LIBNAME myfolder 'xxxxxxxxxxxxxxxx' ;
proc sql;
create table sql.target_table as select * from myfolder.mydata ;
quit;