我和我的团队在执行时遇到了这个问题,我们的Lambda函数将我们的json
数据从Amazon S3插入Redshift。我们继续收到此错误
java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at or near "S"
这是我们执行的用于运行查询的代码,该查询正在构建到String Builder中。
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 + "');");
在我们遇到这个之前,似乎所有其他SQL命令都没问题。不知道这个错误在哪里以及它是什么。非常感谢任何帮助
答案 0 :(得分:3)
最有可能的是你正在点击从单引号中逃脱的数据。 不要通过附加字符串来创建sql语句,你会遇到这个问题,你会接受SQL注入攻击,以及一些我现在懒得查看的其他问题:p
你最好建立一个PreparedStatement:https://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/
您当天的轶事:始终100%使用PreparedStatements。