提问人:Ian Hunter 提问时间:12/22/2021 更新时间:12/28/2021 访问量:268
如何使用 DB2/AS400 通过 R ODBC 和 DBI 传递隔离级别
How to pass isolation level through R ODBC and DBI with DB2/AS400
问:
我正在尝试找到一种方法,通过 DB2/AS400 连接字符串的 R DBI/ODBC 传递隔离级别。我什至不确定我问的问题是否正确。
我可以使用以下链接中的说明更改 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 =
)
答:
1赞
Ian Hunter
12/26/2021
#1
ISeries ODBC 驱动程序 API 文档: https://www.ibm.com/docs/en/i/7.4?topic=details-connection-string-keywords 转到第二部分以查找所有提交模式选项。
用于更改提交模式的连接字符串:
con <- DBI::dbConnect(odbc::odbc(),
SYSTEM = "system",
Driver = "{iSeries Access ODBC Driver}",
#Server = "server",
#Database = "",
UID = "uid",
PWD = rstudioapi::askForPassword("password"),
DBQ = "MYLIB",
CMT = 0
#Port =
)
Possible values:
0 = Commit immediate (*NONE)
1 = Read committed (*CS)
2 = Read uncommitted (*CHG)
3 = Repeatable read (*ALL)
4 = Serializable (*RR)
评论
odbc
iSeries Access ODBC Driver