SQL 查询的准备语句,错误 DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703
Posted
技术标签:
【中文标题】SQL 查询的准备语句,错误 DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703【英文标题】:Prepared statement for SQL query, error DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703 【发布时间】:2018-06-25 11:44:45 【问题描述】:我目前在使用准备好的语句进行 SQL 查询时遇到问题。
String test= "INSERT INTO TEST" + "(ID, IC, CN, CT, Time)"
+ "VALUES ('"+ ID +"','"+ IC +"','"+CN +"','"+ CT +"','"+ time +"')";
preparedStatement = myConn.prepareStatement(test);
preparedStatement.executeUpdate();
我已成功连接到数据库,并创建了表。是因为单引号的问题吗?
【问题讨论】:
不相关:但PrepareStatement
在查询中连接不符合逻辑
你的问题不完整,添加表中各列的datatypes,这样我们就可以看到哪些值需要引用了。
您需要提供完整的错误信息。 SQLCODE -206 表示您在语句中引用了一个不存在的对象(表或列)。错误消息应包含对象的名称。
【参考方案1】:
您错过了使用PreparedStatement
的意义。你可以只绑定这些值,这样你就不必乱引用自己了:
String test= "INSERT INTO TEST (ID, IC, CN, CT, Time) VALUES (?, ?, ?, ?, ?)";
preparedStatement = myConn.prepareStatement(test);
preparedStatement.setString(id);
preparedStatement.setString(ic);
preparedStatement.setString(cn);
preparedStatement.setString(ct);
preparedStatement.setDate(new Timestamp(time));
preparedStatement.executeUpdate();
【讨论】:
以上是关于SQL 查询的准备语句,错误 DB2 SQL 错误:SQLCODE=-206,SQLSTATE=42703的主要内容,如果未能解决你的问题,请参考以下文章
PHP IBM SQL DB2 语句仅部分更新,没有错误消息
DB2 SQL 错误(SQLCODE:-964,SQLSTATE:57011)处理方法