Каждый раз, когда я пытаюсь использовать функцию dbWriteTable из пакета RMySQL в R 3.0 (но также и в R 2.15 раньше), я получаю эту ошибку "Erreur dans tolower(avail) : chaîne de charactères multioctets incorrecte 45",
, что означает что-то вроде "Error in tolower(avail) : Multibyte string error X".
И я не может найти какое-либо решение, я даже не понимаю, где эта ошибка генерируется.Многобитовая строковая ошибка при записи в MySQL из R с помощью RMySQL dbWriteTable
Вот факты: Я работаю над Mac OS X 10.9.1, но имел эту ошибку на 10.8.x, и у меня это тоже на Debian. Оба MySQL и R находятся на одной машине (или нет, это не имеет никакого значения). Для целей тестирования я создал таблицу с численными значениями, и я прочитал ее содержимое с помощью RMySQL (без проблем), затем попытайтесь повторно установить его в MySQL с помощью dbWriteTable и бум. Вот R сценарий:
#!/usr/bin/Rscript
library(DBI)
library(RMySQL)
conn <- dbConnect("MySQL", user="userr", password="passworrd", dbname="dbtest")
res <- dbSendQuery(conn, statement = paste("SELECT * FROM testable"))
input <- fetch(res, n = -1)
dbWriteTable(conn, "testable2", input, row.names = T, overwrite = FALSE, append = T)
dbDisconnect(conn)
Содержание таблицы являются:
id testval
1 1 76
2 2 47417
Пользователь владеет БД. Извлечение отлично работает, но не dbWriteTable. Вероятно, ошибка связана с некоторым кодированием символов, но я не могу понять, что.
Я использую R версию 3.0.2 (2013-09-25), RMySQL 0.9-3, DBI 0.2-7 и MySQL 5.6.14, Mac OS X 10.9.1.
У меня такая же проблема на сервере Rstudio, размещенном на машине Debian.
Mysql на Debian (не знаю, где найти их на Mac) Журнал говорит:
- 140211 14:04:15 24 Connect [email protected] on dbtest
- 140211 14:04:32 24 Query show tables
- 140211 14:04:52 24 Quit
Итак, мое скромное желание, чтобы кто-то мог бы поставить меня на хорошей трассе!
Didier