db2 - SAS通过ODBC错误连接到DB2

标签 db2 odbc sas

我一直在从事通过ODBC连接到DB2的SAS的研究,这一步通常可以正常工作:

proc sql;
connect to odbc(dsn=DSQ user="UserID" password="Password"); 
execute (set current degree = 'ANY' ) by ODBC;
create table tempTable as select * from connection to odbc (
    select * 
    from schemaName.tableName
);
quit;

但是,偶尔会出现以下错误,并且当我收到此错误时,我将无法在相当长的一段时间内运行另一个ODBC查询,因为每次我尝试运行查询时,我都会收到相同的错误:
ERROR: CLI error trying to establish connection: [IBM][CLI Driver] SQL1042C  An unexpected system
   error occurred.  SQLSTATE=58004

一段时间后,错误要么自行解决,要么我做一些我不知道的事情来解决问题。这是一个非常令人沮丧的问题,并且由于我不知道该问题将持续多久,因此我希望对此问题提供更可靠的解决方案。我已经检查了db2diag.log文件,这是描述此错误的部分:
2015-06-03-08.17.34.345000-300 I60888H446           LEVEL: Error
PID     : 4452                 TID : 7804           PROC : sas.exe
INSTANCE: DB2                  NODE : 000
HOSTNAME: 
EDUID   : 7804
FUNCTION: DB2 Common, Cryptography, cryptDynamicLoadGSKitCrypto, probe:998
MESSAGE : ECF=0x90000007=-1879048185=ECF_UNKNOWN
          Unknown
DATA #1 : unsigned integer, 4 bytes
60
DATA #2 : String, 11 bytes
gsk8sys.dll

我正在尝试找到一个放置在此帖子中的示例,因此我在SAS中运行了此代码段以查看错误是否会再次出现,但是它似乎已解决了该错误,因为在运行这段代码后,我运行了初始代码代码,并且有效。这是似乎已解决问题的代码。
proc sql;
    connect to odbc(dsn=DSQ user="UserID" password="Password"); 
    execute (set current degree = 'ANY' ) by ODBC;
    create table column_names as select * from connection to odbc (
        select * from sysibm.syscolumns
    );
quit;

我曾尝试使用Google搜索该问题,但对于此特定错误没有太多帮助。第二个SAS代码是否可以解决我遇到的问题?有什么办法可以解决此问题,以便将来不再出现?

请注意,发生错误时,我仍然可以通过Microsoft Access中的ODBC运行查询,而不会出现任何问题。看来这只是一个特定实例的问题。

系统设置:

Windows 7 64位

SAS 9.3(32)

DB2 v10.5.300.125

在此先感谢您的帮助!

更新:
在某些情况下,我能够进入任务管理器并删除一些仍在运行的进程,然后此问题将自行解决,但是今天,当发生此问题时,这些进程就不存在了。任何对此的想法将不胜感激。

最佳答案

症状可能取决于Db2 connect和程序(sas.exe)的安装顺序。如果首先安装了DB2 connect,则不应发生这种情况。因此,建议先删除并重新安装两个产品,然后再安装Db2 connect。

希望这可以帮助。

关于db2 - SAS通过ODBC错误连接到DB2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30622444/

相关文章:

python - 使用 unixODBC 时无法在 AWS Lambda 中找到 ODBC 驱动程序

c++ - 我们是否需要在每次调用 SQLExecdirect 之前调用 SQLAllocHandle 来分配一个 SQLHSTMT

hadoop - 在pyspark中保存中间表的最佳方法

Java,将数据库连接传递到不同的类中。

c# - 将 Dapper 与 '?' 一起使用

java - 如何从执行插入操作的 DB2 存储过程将生成的键返回到 JDBC?

activerecord - 是否有一个 NoSQL/键值存储抽象库,就像 JDBC 用于数据库一样?

sas - 有效地将SAS中的三次样条拟合到特定的对象网格

linux - Oracle 表到 SAS 数据集

sql - 寻找包装在用户定义的 SQL 函数中的外部 SQL 存储过程中的任何 OS/400 API 的工作示例