[Amazon](500310) 无效操作:“S”处或附近的语法错误 RedShift 错误

Moh*_*man 2 java lambda amazon-redshift

我和我的团队目前在执行将json数据从 Amazon S3 插入 Redshift 的Lambda 函数时遇到了这个问题。我们继续收到此错误

java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at or near "S"
Run Code Online (Sandbox Code Playgroud)

这是我们为运行查询而执行的代码,该代码正在构建到字符串构建器中。

sql.append("Insert into comparison values ('" + d_timestamp + "','" + d_category + "','" + d_modification_method 
+ "','" + d_match + "','" + d_operator_name + "','" 
+ d_operator_email + "','" + d_datpoint + "','" + d_datapointcontent + "');");
Run Code Online (Sandbox Code Playgroud)

在我们遇到这个之前,似乎所有其他 SQL 命令都很好。不知道这个错误在哪里以及它的用途。将不胜感激任何帮助

Mar*_*zio 5

您很可能正在击中从单引号中逸出的数据。不要通过附加字符串来创建 sql 语句,你会遇到这个问题,你会容易受到 SQL 注入攻击,还有一些我现在懒得查的其他问题:p

你最好构建一个 PreparedStatement:https : //www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/

您当天的轶事:始终 100% 地使用 PreparedStatements。