Sql server 用于ODBC的SAS SQL直通设施规范

Sql server 用于ODBC的SAS SQL直通设施规范,sql-server,sas,pass-through,Sql Server,Sas,Pass Through,第一次使用SQL Pass-Through,但无法理解它是如何工作的 libname myl odbc datasrc=AAA; 我试过这个 proc contents data=myl.mytable;run; 它的工作原理与 proc contents data=AAA.mytable;run; 那么libname语句有效吗 但当我试着这么做的时候,运气不好 proc sql; connect to ODBC(datasrc=AAA); execute (delete from Oit

第一次使用SQL Pass-Through,但无法理解它是如何工作的

libname myl odbc datasrc=AAA;
我试过这个

proc contents data=myl.mytable;run;
它的工作原理与

proc contents data=AAA.mytable;run;
那么
libname
语句有效吗

但当我试着这么做的时候,运气不好

proc sql;
connect to ODBC(datasrc=AAA);
execute (delete from Oit.d1 where datepart(Date) >= '08Mar2014'd) by ODBC;
disconnect from ODBC;
quit;
错误显示

ERROR: CLI error trying to establish connection: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我错过了一些争论吗

您可以检查以下内容:

  • 此错误消息通常是由于
    datasrc=
    语句中的输入错误,或在
    控制面板->ODBC数据源中设置DSN失败造成的
    
  • 确保您输入的值(
    AAA
    在您的示例中)与名称在
    控制面板->ODBC数据源中的显示方式完全相同
    
  • 检查在ODBC设置中单击“测试”时,它是否可以成功连接
  • 最后,如果要从不同于windows登录帐户的帐户运行SAS作业,请确保将ODBC连接设置为
    系统DSN
    ,而不是
    用户DSN
    。系统DSN对计算机上的所有用户可见,而不仅仅是创建ODBC连接的用户可见
这就是我的ODBC passthrough语句通常用于简单查询的方式:

/* mySQL example */
proc sql noprint;
  connect to odbc (datasrc=myDSN user=myusername password="mypassword");

  create table sqlo as 
  select *
  from connection to odbc
  (
  select * from database.table limit 1
  )
  ;
quit;

我能找到的关于服务器的唯一信息是通过右键单击SAS中服务器列表中的图标获得的主机名。请尝试添加SASTRACE选项-
options SASTRACE='d',sastraceloc=saslog并查看两种情况下的日志。尝试在gui中设置选项,后一个%put应返回您“单击”的设置:
proc sql;连接到odbc(提示);退出;%put&sqlxmsg查看处理显式传递的部分,看看这是否有用。特别是,我会尝试他们给出的查询示例(任何查询,只是一些愚蠢的事情),并告诉SAS为您生成显式传递源;然后,如果它运行,请查看该源并查看它使用的连接信息。我认为此错误也可能是由于使用32位ODBC驱动程序和64位SAS造成的,反之亦然。如何设置为
系统dsn
?当您进入
控制面板->ODBC数据源时,会显示一个选项卡列表。系统DSN将有一个选项卡,只需选择该选项卡,然后单击“添加”按钮即可。