我有一个用Java编写的SQL查询,如下所示:
public void getTransactionHistoryTest(String userId) {
String q = "SELECT * FROM \"TEST\".\"PUBLIC\".\"USER_TABLE\" WHERE \"ID\"='{userId}'";
return jdbcTemplate.query(query, rs -> {
}, userId);
}
int userId= Integer.parseInt(id);
是否可以发送string
值,将其转换为int
,并使其在雪花中工作?
试着用?字符而不是“{userId}”
public List<TransactionHistory> getTransactionHistoryTest(String userId) {
String q = "SELECT * FROM \"TEST\".\"PUBLIC\".\"USER_TABLE\" WHERE \"ID\"=?";
return jdbcTemplate.query(q, ROW_MAPPER, userId);
}
您的问题不是由用户Id的值引起的,而是由参数的错误转义引起的。在您的情况下,您不需要命名参数-所以只是?会起作用的。否则使用命名参数模板。请参阅更多示例,例如https://javabydeveloper.com/spring-jdbctemplate-query-examples/
我已经检查并删除了查询的各个部分,试图隔离它来自哪里。经过几个小时和削减每一栏,它仍然在发生。 有人知道雪花诊断查询(像Redshift有)可以告诉我问题发生的特定列吗?
无法识别数值“ABC_0011O00001Y31VPQAI” 检查表DDL,发现只有3列定义为NUMBER,而rest定义为VARCHAR。 我检查了SELECT查询,在这些NUMBER Datatype列中没有找到任何字符串值。我还尝试在所有Varchar列中搜索值'ABC_0011O00001Y31VPQAI',但没有找到任何 我知道一件事,雪花并不总是显示正确的错误。我是不是漏掉了什么?有什
我试图从我的jar启动另一个Java进程,我使用的是ProcessBuilder: 错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。无法识别的选项:-类路径“C:\absoulte\path\library.jar;C:\absoulte\path2\library2.jar;C:\absoulte\path3\library3.jar”
我有一个与cassandra连接的springboot应用程序。我试图在地图中创建地图,但遇到以下异常。在我看来,即使我使用了冻结值,它仍在发送cal,但没有关键字冻结 错误 代码 马文
我有以下序列
我不确定这是否是一个与我没有这台计算机的管理权限有关的问题。任何帮助,以便我可以进一步排除故障,将非常感谢! 谢谢