最近,当我们安装gdata-package时,我们遇到了一系列与DB2/AS 400的ODBC连接的问题。在那之后,我们彻底清除了所有与R相关的文件,并重新开始,但IBM DB2连接仍然有问题。如果.Rprofile加载时没有错误,我们的DBS-odbc连接将为空(在R之外工作正常)。如果我在.Rprofile中写入了导致错误的内容,那么到DB2/AS 400的ODBC连接在DBI/odbc和旧的RODBC中都工作正常。DB2/AS 400的底层CCSID = 278。
EDIT:我可以建立连接,但是对象看起来是空的。对于DBI,我已经添加了CCSID = 1252并使其工作。但是对于RODBC还没有这样的运气(即使我们计划离开它,我们仍然在使用它)
在初始化过程中,什么可能出错,只有当我在.Rprofile中插入错误时它才能工作?我如何在RODBC中指定编码,使它能工作?
EDIT 2:问题出在R中,因为ODBC连接在所有其他域中工作
DBI/odbc -执行工作:
library(DBI)
library(odbc)
con3 <- dbConnect(odbc::odbc(), "mydb", uid= "myuser", pwd = "mypwd",
CCSID = 1252)
Rodbc -不工作:
con3 <- odbcConnect(dsn=mydb,uid= myuser,mypwd,
DBMSencoding = "1252")
会话信息:
version 4.2.0 Patched (2022-05-12 r82348 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=Swedish_Finland.1252 LC_CTYPE=Swedish_Finland.1252 LC_MONETARY=Swedish_Finland.1252
[4] LC_NUMERIC=C LC_TIME=Swedish_Finland.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] odbc_1.3.3 DBI_1.1.3
loaded via a namespace (and not attached):
[1] bit_4.0.4 compiler_4.2.0 ellipsis_0.3.2 cli_3.4.1 hms_1.1.2 tools_4.2.0
[7] Rcpp_1.0.9 bit64_4.0.5 vctrs_0.4.2 blob_1.2.3 lifecycle_1.0.3 pkgconfig_2.0.3
[13] rlang_1.0.6
1条答案
按热度按时间3htmauhk1#
DBI/odbc的答案是设置CCSID = 1252,RODBC的答案是设置系统setenv(NLS_LANG=“LATIN 1”)
这使得.Rprofile的加载非常慢,但它可以工作,所以至少有这一点。