R -如果.Rprofile加载时没有错误,则ODBC到IBM DB2/AS 400的连接为空白

sg24os4d  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(169)

最近,当我们安装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
3htmauhk

3htmauhk1#

DBI/odbc的答案是设置CCSID = 1252,RODBC的答案是设置系统setenv(NLS_LANG=“LATIN 1”)
这使得.Rprofile的加载非常慢,但它可以工作,所以至少有这一点。

相关问题