【问题标题】:SAS SQL Pass-Through Facility Specifics for ODBC用于 ODBC 的 SAS SQL 直通工具细节
【发布时间】:2014-10-21 07:49:03
【问题描述】:

第一次使用 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

我错过了一些论点吗?

【问题讨论】:

  • 我能找到的关于服务器的唯一信息是通过右键单击 SAS 服务器列表中的图标获得的主机名。
  • 尝试添加 SASTRACE 选项 - options sastrace='d,' sastraceloc=saslog nostsuffix; 并查看两种情况下的日志。
  • 尝试在gui中设置选项,后面的%put应该返回你“点击”的设置:proc sql; connect to odbc (prompt); quit; %put &sqlxmsg;
  • 查看this pdf 处理显式传递的部分,看看是否有帮助。特别是,我会尝试他们给出的查询示例(任何查询,只是一些愚蠢的事情)并告诉 SAS 为您生成显式传递源;然后如果它运行,请查看该源并查看它使用了哪些连接信息。
  • 我认为这个错误也可能是使用 64 位 SAS 的 32 位 ODBC 驱动程序的结果,反之亦然。

标签: sql-server sas pass-through


【解决方案1】:

您可以检查以下内容:

  • 此错误消息通常是由datasrc= 语句中的拼写错误或Control Panel->ODBC Data Sources 中的DSN 设置失败引起的。
  • 确保您输入的值(在您的示例中为AAA)与名称在Control Panel->ODBC Data Sources 中的显示方式完全相同。
  • 检查当您在ODBC设置中单击测试时,它可以连接成功。
  • 最后,如果您将从不同于 Windows 登录帐户的帐户运行 SAS 作业,请确保您的 ODBC 连接设置为System DSN 而不是User DSN。计算机上的所有用户都可以看到系统 DSN,而不仅仅是创建该 ODBC 连接的用户。

这就是我的 ODBC 直通语句通常如何查找简单查询:

/* 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;

【讨论】:

  • 如何设置为system dsn
  • 当您进入Control Panel->ODBC Data Sources 时,您会看到一个选项卡列表。将有一个System DSN 的选项卡,只需选择该选项卡,然后单击“添加”按钮。
猜你喜欢
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多