将SAS连接到Microsoft SQL Server数据库

时间:2013-05-22 16:48:03

标签: sql sql-server sas

我想将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。

我可能犯了一个愚蠢的错误,但我没有看到它。

4 个答案:

答案 0 :(得分:3)

在SAS中建立ODBC连接到SQL SERVER;     首先使用 Windows ODBC数据源管理员制作 用户DSN 。我使用SQL Server Native Client和默认值。

然后在SAS执行以下声明

("(a_|an_)")

另外,在SAS Explorer窗口GUI中,选择新建以调用新库对话框。

请注意,您计算机上的DSN来源将列在数据源下拉列表中。

用户ID,密码和选项字段是可选的,对于Windows Integrated Security,它们保留为空白。

New Library dialog;

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;