Jak pobrać bardzo długi ciąg XML z bazy danych SQL za pomocą R?

Mam skrypt do pobrania pliku XML z bazy danych SQL. Oto jak to zrobić:

library(RODBC)
library(XML)

myconn <- odbcConnect("mydsn")

query.text <- "SELECT xmlfield FROM db WHERE id = 12345"
doc <- sqlQuery(myconn, query.text, stringsAsFactors=FALSE)
doc <- iconv(doc[1,1], from="latin1", to="UTF-8")
doc <- xmlInternalTreeParse(doc, encoding="UTF-8")

Jednak parsowanie nie działało dla konkretnego wiersza bazy danych, chociaż działało, gdy skopiowałem zawartość tego pola do osobnego pliku i przeanalizowałem go z pliku. Po dwóch dniach „prób i błędów” zidentyfikowałem główny problem. Wygląda na to, że odpytywanie krótkich plików XML w ten sposób nie powoduje żadnych problemów, ale gdy odpytuję większe pliki, ciąg zostaje odcięty po 65534 znakach. Dlatego brakuje końca pliku XML i nie można go przeanalizować.

Myślałem, że może to być ogólne ograniczenie połączeń ODBC na moim komputerze. Jednak inny program, który również korzysta z ODBC, aby uzyskać to samo pole XML z tej samej bazy danych, robi to bez żadnych problemów. Więc myślę, że to jestR-specyficzny problem.

Jakieś pomysły, jak to naprawić?

questionAnswers(2)

yourAnswerToTheQuestion