我有一个简单的 UPDATE 语句,如下所示:
UPDATE SCHEMA.TABLE SET STATE = 'ACTIVE' WHERE STATE = 'INACTIVE'
在 SQL Developer 中,即使没有任何处于“INACTIVE”状态的记录,这种情况始终有效,在这种情况下返回“0 行已更新”。
但是,当使用
jdbcTemplate.update(query)
或 jdbcTemplate.execute(query)
执行相同的查询时,只有在执行时存在任何状态为“INACTIVE”的记录时,它才有效。否则,如果没有任何“INACTIVE”记录,我会得到:
class org.springframework.jdbc.BadSqlGrammarException StatementCallback; bad SQL grammar [UPDATE SCHEMA.TABLE SET STATE = 'ACTIVE' WHERE STATE = 'INACTIVE']; nested exception is java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
我希望无论是否有任何处于“INACTIVE”状态的记录都执行查询,但我不知道我缺少什么/要做什么才能实现这一点。
提前谢谢您!
我希望无论是否有任何处于“INACTIVE”状态的记录都执行查询,但我不知道我缺少什么/要做什么才能实现这一点。
您的查询就是这样做的。 但表
SCHEMA.TABLE
不存在或无法被执行该语句的数据库用户访问。
实际上,在许多更复杂的场景中您都会遇到此异常。请参阅 SQL 错误:ORA-00942 表或视图不存在