2015-11-10 2 views
0

Когда я пытаюсь создать CSV-файл из базы данных MySQL с использованием ruby, файл не создается и ошибка не возвращается. Это на компьютере с Windows 10.Использование Ruby для создания CSV-файла из базы данных MySQL, не создающего файл

Вот мой код:

def dump_csv 
    Dir.mkdir 'C:\temp' unless File.exists? 'C:\temp' 
    <<-SQL 
     SELECT * 
     FROM #{@table} 
     GROUP BY a, b, c, d 
     HAVING COUNT(*) < 40 
     INTO OUTFILE 'C:\\\\temp\\\\temp.csv' 
     FIELDS TERMINATED BY ',' 
    SQL 
end 

Я знаю, что это не ошибка разрешения, потому что если я ввод, что заявление в MySQL напрямую работает просто отлично. Есть идеи? Или другой способ обойти это?

Спасибо!

+0

http://stackoverflow.com/q/2774808 – Drew

+0

Я пробовал кучу слэш, ни Работа. Я уверен, что это должно быть «\\\\», но я пробовал до 8 слэшей, не уходил ... – ChrisD

+0

как насчет того, чтобы перейти на другой странный способ, как видно http://stackoverflow.com/q/ 7173000 – Drew

ответ

0

Вы не выполняете SQL.

конструкт

<<-SQL 
    ... 
SQL 

просто строит строку с «SQL» в качестве конечных маркеров

+0

Спасибо, Удвоенный проверено, и вы были правы! – ChrisD

0

Я только быстро взглянул на это, но могу отключить File.exists? для Dir.exists?, так как вы пытаетесь создать каталог и проверяете, существует ли ФАЙЛ. Я бы нарисовал его чуть более ясно для чего-то подобного:

def temp_file 
    temp_directory = 'C:\temp' 
    Dir.mkdir(temp_directory) unless Dir.exists?(temp_directory) 
    file = "#{temp_directory}/temporary_csv.csv" 
end 
File.open(temp_file, 'w') << SQL 
Смежные вопросы