是否有可能不使用 ODBC 来连接到 IBM DB2 数据库?你好,
我们通过 SSL 连接使用 IBM DB2 数据库。OCBC 与 DB 的连接运行良好,但对于大多数用户来说,设置起来相当复杂。如果软件可以使用“类型 4 db2 连接”,则不需要 odbc。只需将“连接字符串”直接发送到远程服务器。此字符串的参数通常直接在软件中配置。使用适当的参数在软件中创建连接配置,IT 人员记录和用户执行起来非常简单。
我觉得 JMP 不直接支持“类型 4 连接”,但 R 和 Python 支持。还可以使用 JSL 脚本提取数据,如下例所示。我们可以创建一个小型 Python 脚本来创建数据库连接,然后将其提供给 JSL 或查询生成器吗?
// JSL Script to extract some IBM DB2 data
New SQL Query(
Connection(
"ODBC:DSN=DBPROD1;MODE=SHARE;PWD=%_PWD_%;SECURITY=SSL;SSLCLIENTKEYSTASH=C:\BRMDB2\ssl\truststore.sth;SSLCLIENTKEYSTOREDB=C:\BRMDB2\ssl\truststore.kdb;SSLSERVERCERTIFICATE=C:\BRMDB2\ssl\carootcert.der;UID=%_UID_%;"
),
QueryName( "Extract exemple" ),
CustomSQL(
"SELECT NAME
,EMPLOYEE_NB
,DEPARTMENT
,SALARY
FROM
EMPLOYEE_TABLE
WHERE
DEPARTMENT = 'MFG02'"
)
) << Run感谢您的帮助!
数据访问回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?基于此数据连接器,您必须使用 ODBC。另一个选项是使用 Python 集成进行查询。编写一个函数,例如接收查询,并在其中运行 Python 脚本来执行查询并将结果作为数据表返回。
回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?你好,
这在某种程度上是我所想的,但我希望连接可以是一个独立创建的对象,并可用于 SQL 查询。我将测试您的建议并在此处提供反馈。我假设我可以编写一个 Python 脚本“模板”,我的同事可以将其粘贴到他们的 JMP 中,并根据他们的需要添加 SQL 代码。我相信它应该有效。但是,我会检查这个解决方案是否可行且可供我的同事使用。如果是,我将在此处提供反馈并接受该回复作为可接受的解决方案。这取决于他们对 SQL 的掌握程度以及表的大小。
感谢您的回复,
回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?我不确定这种类型的连接器是否可以在 JMP18 中完成,因为此插件的最低版本为 JMP19 EA 3、 S3 数据连接器(JMP Marketplace) ,但它似乎使用 Python 作为 AWS S3 的连接器。如果它可以在 JMP18 中使用,它可能会给你一些可以做的事情的想法。你应该能够下载插件,然后使用 7zip 等工具将其提取出来。
回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?你好,
对于 oracle 和 postgre 数据库,我们只能发送连接字符串。
我认为这种方法对于 db2 来说也是可行的,无需为每台计算机设置一个名称的 odbc。
我计划这个月或下个月尝试一下。
问候,
纪尧姆
回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?你好,
抱歉我回答迟了。
你可以这样做(在我这边已经测试过了)。
db2_connect =
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE= strDatabase;
HOSTNAME= strHostname;
PORT= strPort;
PROTOCOL=TCPIP;
UID= strUser;
PWD= strPassword;";
OpenDatabase(db2_connect, "SELECT * FROM SYSIBM.SYSDUMMY1;", "sysdummy1");You have to define the DRIVER and all other varaibles strDatabase, strHostname, strPort, strUser, strPassword
使用 SSL,您可以尝试以下操作(未经测试):
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=strDatabase;
HOSTNAME=strHostname;
PORT=strPort;
PROTOCOL=TCPIP;
SECURITY=SSL;
UID=strUser;
PWD=strPassword;
SSLCLIENTKEYSTOREDB=/path/to/client/keystore.kdb;
SSLCLIENTKEYSTASH=/path/to/client/keystore.sth;
SSLCLIENTKEYPASSWORD=keystore_password;"
问候,
纪尧姆
回复:是否可以不使用 ODBC 连接到 IBM DB2 数据库?您可能需要使用更多的连接参数进行 SSL 连接。