【问题标题】:How to use the load command with MySQL in Ruby/Rails?如何在 Ruby/Rails 中将 load 命令与 MySQL 一起使用?
【发布时间】:2015-04-02 09:50:28
【问题描述】:

在 MySQL 中,我可以运行:

LOAD DATA LOCAL INFILE "/home/pt/test/bal.csv" INTO TABLE bal FIELDS
TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '"' IGNORE 1
LINES;

但是,在我的 Ruby 程序中:

str="LOAD DATA LOCAL INFILE "/home/pt/test/bal.csv" INTO TABLE bal
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '"'
IGNORE 1 LINES;"

puts str

dbh.query(str)

输出是:

LOAD DATA LOCAL INFILE "/home/pt/test/bal.csv" INTO TABLE bal FIELDS
TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '"' IGNORE 1
LINES;

/home/pt/test/ptb.rb:34:in `query': Field separator argument is not what
is expected; check the manual (Mysql::Error)
from /home/pt/test/ptb.rb:34:in `<main>'

这段代码有什么问题?

【问题讨论】:

  • str="LOAD DATA LOCAL INFILE \"/home/pt/test/bal.csv\" INTO TABLE bal FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\" ' 忽略 1 行;"试试这个它会工作..:)

标签: mysql ruby-on-rails ruby ruby-on-rails-3 mysqldump


【解决方案1】:

删除ENCLOSED BY ' \"'中的空格

str="LOAD DATA LOCAL INFILE \"/home/pt/test/bal.csv\" INTO TABLE bal FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES;"

%Q[] Ruby syntax 也可能对您有用。它类似于"",但您不需要在字符串中转义"

str=%Q[LOAD DATA LOCAL INFILE "/home/pt/test/bal.csv" INTO TABLE bal FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;]

【讨论】:

  • 你试过 %Q[] 语法了吗?
  • 我已经完成了,但它不起作用主要错误是:字段分隔符参数不是预期的;从/home/pt/test/ptb.rb:34:in'查看手册(Mysql::Error)
  • 您能否直接复制并粘贴此代码而不做任何更改:dbh.query %Q[LOAD DATA LOCAL INFILE "/home/pt/test/bal.csv" INTO TABLE bal FIELDS TERMINATED BY ', ' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;]
  • 完成但我最终得到错误:`query': The used command is not allowed with this MySQL version (Mysql::Error)
猜你喜欢
  • 2015-09-21
  • 2021-10-20
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2011-08-09
  • 2016-05-03
相关资源
最近更新 更多