加载数据时Mysql CONCAT错误

用户2917347

我正在开发一个 sql 脚本,它将.csv存储在 S3 存储桶中文件加载到 RDS 数据库中。LOAD命令在不使用时完美运行CONCAT我使用CONCAT在语句中包含变量。我认为问题出在一个或多个条款上。出于故障排除目的,我显着缩短了字段。我尝试了几种不同的方法,但似乎无法获得正确的语法。

set @s3intotemp = CONCAT('
LOAD DATA FROM S3 PREFIX "`',@workingdir, '`"
INTO TABLE `',@rndtable, '` 
FIELDS TERMINATED BY ","
ESCAPED BY ""
ENCLOSED BY "\""
LINES TERMINATED BY "\n"
(@col1,
@col2) 
SET customer=@col1,
firstname=@col2;
');
PREPARE stmt from @s3intotemp;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

我收到以下错误:

SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 6 行 '" (@col1, @col2 ) SET customer=@col1, firstname=@col2' 附近使用的正确语法

巴马

您需要对字符串中的反斜杠进行转义,这样它们就会成为连接的结果。

set @s3intotemp = CONCAT('
LOAD DATA FROM S3 PREFIX "`',@workingdir, '`"
INTO TABLE `',@rndtable, '` 
FIELDS TERMINATED BY ","
ESCAPED BY ""
ENCLOSED BY "\\\""
LINES TERMINATED BY "\\n"
(@col1,
@col2) 
SET customer=@col1,
firstname=@col2;
');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章