XLConnect - обработка самого последнего листа молча выходит из БД proc - PullRequest
0 голосов
/ 07 марта 2019

Это сложный вопрос.Я пока не могу легко составить MRE.

Я перебираю последние x количество листов в книге Excel (обычно x <10).Я прочитал (табличное) содержимое каждого листа и преобразовал его в xml как строку.Я передаю этот xmlstr функции lapply, которая вызывает процедуру SQL Server через RODBC / RODBCext.Хранимая процедура преобразует (используя приведение) тип данных xmlstr в XML и измельчает его в набор результатов, который можно объединить с целевой таблицей.Стандартные вещи действительно.Работает отлично, за исключением обработки самого последнего листа в книгеЭто воспроизводимо.Каждый день имеет 1 лист с датой в формате дд-мм-гггг.Если последний лист представляет сегодняшнюю дату, то он будет успешно обработан только при наличии листа на завтра.Последний xmlstr может быть впоследствии безошибочно преобразован каждый раз из базы данных.Процедура завершает процедуру без вывода сообщений без каких-либо ошибок, не завершая процедуру в строке преобразования в формате xml, даже если преобразование в формате xml находится в блоке try / catch.Умышленные ошибки, такие как DivBy0, корректно возвращаются R-клиенту.Если я гарантирую, что всегда есть хотя бы один лист впереди «сегодня», то сегодняшний лист будет обработан.</p>

Есть идеи, что здесь происходит?

Я не уверен, как изолировать эту проблему.Здесь много компонентов.Предложения приветствуются.

Установленные ресурсы, как показано ниже ...

> 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
...