0

我在 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.

我没有得到我要去的地方。

谢谢你。

4

2 回答 2

2

首先,你真的不应该通过连接字符串来创建 SQL 语句。这使您对 SQL 注入黑客持开放态度。您应该使用 PreparedStatement 并设置值,这样 JDBC 就可以正确地转义它们。

该错误很可能是由于开始时间和结束时间的格式错误。您可能需要显示堆栈跟踪以及您尝试插入的一些示例数据。我建议尝试在这行代码之后立即中断,复制生成的串联字符串,然后直接在数据库中运行它。

于 2013-04-24T12:06:29.933 回答
0

也许在您的字段(如 pgvw)中包含 ' 或 \,或者您的日期和开始时间在使用之前未格式化。

于 2013-04-24T12:04:42.287 回答