stringa RODBC ottenere troncata
Domanda
Io sono il recupero dei dati da MySQL Server in R utilizzando RODBC.
Quindi, in una colonna del database è un vettore di carattere
SELECT MAX(CHAR_LENGTH(column)) FROM reqtable;
RESI 26566
Ora vi mostrerò un esempio di come sto funzionando nel problema
`library(RODBC)
con <- odbcConnect("mysqlcon")
rslts <- as.numeric(sqlQuery(con,
"SELECT CHAR_LENGTH(column) FROM reqtable LIMIT 10",
as.is=TRUE)[,1])
` ritorna
> rslts
[1] 62 31 17 103 30 741 28 73 25 357
dove, come
rslts <- nchar(as.character(sqlQuery(con,
"SELECT column FROM reqtable LIMIT 10",
as.is=TRUE)[,1]))
ritorna
> rslts
[1] 62 31 17 103 30 255 28 73 25 255
Quindi, stringhe con lunghezza> 255 sta ottenendo troncato a 255. C'è un modo posso ottenere la stringa completa.
Grazie
Soluzione
Il driver ODBC PostgreSQL ha una variabile chiamata MaxLongVarcharSize che ho trovato insieme a 8190 per default (ho usato sia su Windows e Ubuntu). È possibile che il driver MySQL ODBC ha una variabile insieme simile a 255.
Altri suggerimenti
Si potrebbe provare a utilizzare un altro driver db, come JDBC. Nella mia esperienza questo è a volte risolto il problema.
Inoltre, cercare il pacchetto RMySQL (binari attuali devono essere compilati. Se non compilare da soli, chiedere di si prega di condividere con la comunità)
Probabilmente la fonte del pacchetto RODBC "potrebbe" fornire approfondimenti sulle limitazioni di lunghezza predefinita eventuali. (Non ho ancora guardato, ma sarò presto e postare un aggiornamento qui)
Un'altra possibilità perché il numero di caratteri recuperato potrebbe essere limitata è un 'sanità' restrizione assegno 65535 byte del pacchetto stesso RODBC - come detto qui .