【发布时间】:2022-01-23 06:43:39
【问题描述】:
我正在尝试找出一种通过 R DBI/ODBC 为 DB2/AS400 连接字符串传递隔离级别的方法。我什至不确定我的问题是否正确。
我可以使用以下链接中的说明更改 Windows ODBC 服务器设置中的提交模式,但如果可能,我需要将设置放入连接字符串中。: https://www.ibm.com/support/pages/ibm-i-access-odbc-commit-mode-data-source-setting-isolation-level-and-autocommit
这是我们的 DBA 允许我们这些小数据科学家写入 DW 的唯一方式。
当然必须有一种方法可以通过“*NONE”又名“立即提交(*NONE),但是 ODBC 文档(第 21 页)不包括以下设置: https://cran.r-project.org/web/packages/odbc/odbc.pdf
连接字符串:
con <- DBI::dbConnect(odbc::odbc(),
SYSTEM = "system",
Driver = "{iSeries Access ODBC Driver}",
#Server = "server",
#Database = "",
UID = "uid",
PWD = rstudioapi::askForPassword("password"),
DBQ = "MYLIB"
#Port =
)
【问题讨论】:
-
并不是说它有多大帮助,但
odbc文档中的缺席并不意味着很多:该包是访问其他软件中的 ODBC 连接器的通用包;它通常将它不知道的参数传递给驱动程序,因此请查看iSeries Access ODBC Driver的文档以了解它可能需要的参数,然后开始四处寻找。我曾问过question 寻找以编程方式确定这些参数的方法,但底层的FR at nanodbc 已经停滞不前。 :-( -
(过去,我能够在 Windows ODBC 驱动程序“设置”页面中看到可用的选项,并且通过大量的反复试验,找到能够在 R 中使用。至少我认为我做到了,现在不完全确定我正在测试哪个驱动程序,也不能确定我找到了什么选项。但这听起来像是一个不可怕的想法,尽管效率低下。)
-
@r2evans 非常感谢您的 cmets 和链接。你给了我正确的术语来开始进一步挖掘。就 DB2 的 iSeries 驱动程序而言。我能够通过 ODBC API 找到驱动程序支持的所有参数。再次感谢! ibm.com/docs/en/i/7.4?topic=details-connection-string-keywords
标签: r odbc db2-400 isolation-level autocommit