我使用Oracle数据库。你能帮助我吗?帮助please谁可以,我厌倦了这个问题=(我有这样的SQL查询,我需要把我的变量到函数-转换器到_日期:
select p.mass_id, p.*
from cpm_problem p
where category = '9154812121313217606'
and type = '9154812121313217612'
and created_when > TO_DATE(lastPpr = ?, 'YYYY-MM-DD HH24:MI:SS')
order by created_when desc
这是我的想法代码:
private static final String LAST_PPR_FROM_RDB = "select p.mass_id, p.* from cpm_problem p where category = '9154812121313217606' and type = '9154812121313217612' and created_when > to_date(latestPprStr = ?, 'YYYY-MM-DD HH24:MI:SS') order by created_when desc";
返回最新PprStr 2022-12-31 12:00:00
public Ppr getCpmProblems() {
String latestPprStr = senderJdbcTemplate.queryForObject(LAST_PPR_FROM_SENDER, String.class);
Ppr ppr1 = rdbJdbcTemplate.query(LAST_PPR_FROM_RDB, ps -> ps.setString(1, latestPprStr),
new BeanPropertyRowMapper<>(Ppr.class)).stream().findAny().orElse(null);
return ppr1;
}
关键的问题是值不能转换成日期,我怎么想...
错误在这里:
原因:错误:907,位置:153,Sql =从cpm_problem p中选择p.mass_id,p.,其中类别=“9154812121313217606”,类型=“9154812121313217612”,并且创建时间〉截止日期(最近的PprStr =:1,“YYYY-MM-DD HH 24:MI:SS”),按创建时间描述排序,原始Sql =从cpm_problem p中选择p.mass_id,p.,其中类别=“9154812121313217606”,类型="9154812121313217612“,并且创建时间〉截止日期(最近的PprStr =?," YYYY-MM-DD HH 24:MI:SS”),按创建时间描述排序,
错误消息= ORA-00907:缺少右括号
任何筛选的"'“或类似的是行不通的,我也试图使用更简单的结构,如:select p.mass_id, p.* from cpm_problem p where category = '9154812121313217606' and type = ?
只是为了检查我的代码在想法是工作和一切都添加到SQL查询成功。但正是在to_date(...)我不能把变量。每次我有坏的SQL语法和“:1”
1条答案
按热度按时间s4n0splo1#
不是有效的SQL表达式。如果要将字符串绑定到此表达式中,则预准备语句SQL字符串应为:
你可以在其中绑定一个字符串