这是一个棘手的问题。我还不能轻易想到MRE。
我正在遍历Excel工作簿中的最后x张工作表(通常x <10)。我阅读了每个工作表的(表格)内容,并将其转换为字符串形式的xml。我将该xmlstr传递给通过RODBC / RODBCext调用SQL Server过程的lapply函数。该存储过程将xmlstr转换(使用强制转换)为XML数据类型,并将其切细为可合并到目标表的结果集。真的是标准的东西。除了在工作簿中处理最后一张纸时,效果很好。这是可重现的。每天都有1张以dd-mm-yyyy格式命名的日期。如果最后一张纸代表今天的日期,则只有在明天有一张纸的情况下才会成功处理。以后每次可以从数据库内部完美转换最后一个xmlstr,而不会出现问题。该过程将以静默方式退出该过程,而不会出现任何错误,即使以xml强制转换在try / catch块中也无需在xml强制转换行完成该过程。故意将诸如DivBy0之类的错误正确地扔回到R客户端。如果我确保“今天”之前至少有一张纸,那么今天的纸将得到处理。
有什么想法吗?
我不确定如何解决此问题。有很多组件。建议表示赞赏。
已安装的资源如下...
> sessionInfo()
R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.5 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_IE.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_IE.UTF-8 LC_COLLATE=en_IE.UTF-8
[5] LC_MONETARY=en_IE.UTF-8 LC_MESSAGES=en_IE.UTF-8
[7] LC_PAPER=en_IE.UTF-8 LC_NAME=en_IE.UTF-8
[9] LC_ADDRESS=en_IE.UTF-8 LC_TELEPHONE=en_IE.UTF-8
[11] LC_MEASUREMENT=en_IE.UTF-8 LC_IDENTIFICATION=en_IE.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] XLConnect_0.2-15 XLConnectJars_0.2-15 RODBCext_0.2.7
[4] RODBC_1.3-14 lubridate_1.7.4 dplyr_0.7.4
[7] zoo_1.7-14 XML_3.98-1.16
loaded via a namespace (and not attached):
[1] Rcpp_0.12.15 lattice_0.20-35 assertthat_0.2.0 grid_3.4.4
[5] R6_2.2.2 magrittr_1.5 pillar_1.1.0 stringi_1.1.6
[9] rlang_0.2.2 bindrcpp_0.2 tools_3.4.4 stringr_1.2.0
[13] glue_1.2.0 compiler_3.4.4 pkgconfig_2.0.1 rJava_0.9-10
[17] bindr_0.1 tibble_1.4.2