我在java中查找了这个sql查询的异常。
statement2.executeUpdate("INSERT INTO visit_header "
+ "VALUES ('"+visitnumber+"','"+date+"','"+cookie+"','"+ip+"','"+duration+"','"+pageref
+"','"+startpagename+"','"+endpagename+"','"+pgvw+"','"+starttime+"','"+endtime+"','"
+country+"','"+state+"','"+city+"','"+browser+"','"+os+"','"+device+"')");
例外是:
java.sql.SQLException: ORA-01861: literal does not match format string.
我没有得到我错的地方。
谢谢。答案 0 :(得分:2)
首先,你真的不应该通过连接字符串来创建SQL语句。这使您对SQL注入攻击持开放态度。您应该使用PreparedStatement并设置值,这样JDBC就可以正确地转义它们。
错误很可能是由于启动时间和结束时间格式错误。您可能需要显示堆栈跟踪以及您尝试插入的一些示例数据。我建议尝试在这行代码之后立即休息一下,复制生成的连接字符串,然后直接在数据库中运行它。
答案 1 :(得分:0)
也许在您的字段中,例如pgvw包含'或\,或者您的日期和开始时间可能在使用前没有格式化。