2014-02-11 2 views
1

Каждый раз, когда я пытаюсь использовать функцию 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

ответ

1

Решение: это была проблема сортировки в базе данных; Я создал еще одну БД с кодировкой UTF-8 (как и первый), но на этот раз с настройкой utf8_general_ci вместо utf8_bin, и там он работал отлично. Длинный вопрос, короткий ответ.

Смежные вопросы