gpt4 book ai didi

java - "nested exception is java.sql.SQLException: Incorrect syntax near '? ' "

转载 作者:行者123 更新时间:2023-12-01 11:15:45 24 4
gpt4 key购买 nike

我正在尝试通过 Spring Framework 的 JdbcTemplate 在我的 Java 应用程序中执行 SQL 语句。尽管查询在 Aqua Data Studio 中 100% 正常工作,但我收到了“错误的 SQL 语法” 错误。

这是我的 Java 代码:

String entity = GCEnvironmentClient.getGteProperties().getProperty("ENTITY_ID");

InputStream is = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("sql/blotter.sql");

String query = IOUtils.toString(is).concat(entity);

return this.jdbcTemplate.query(query, new BlotterTradeMapper());

需要注意的一件事:我尝试让我的 RowMapper 类 (BlotterTradeMapper) 返回 null 对象以避免操作 ResultSet。这没有改变任何东西,所以我知道这个类不会引起问题。

这是查询:

SELECT 
inv..trans.com_line1,
inv..trans.trade_acct,
inv..trans.bs_code,
inv..trans.trans_type,
inv..trans.cust_num,
mast..sec_mst.sec_type,
mast..sec_mst.mature_date,
mast..sec_mst.coupon,
inv..trans.trans_num,
inv..trans.trade_date,
inv..trans.cc_code,
inv..trans.settle_date,
inv..trans.other_chrg,
inv..trans.principal,
inv..trans.interest,
inv..trans.basis_prc,
inv..trans.dollar_prc,
inv..trans.quantity,
inv..trans.cusip,
inv..trans.rem_line1,
inv..trans.rem_line2,
mast..sec_mst.dated_date,
mast..sec_mst.des_line1,
mast..groupmst.group_name,
mast..groupmst.group_id,
mast..cust_mst.nam_add1,
inv..trans.fin_rate,
ISNULL(mast..contract.contract_size, 1),
ISNULL(mast..contract.contract_size, 1),
mast..curr_mst.multiplier,
mast..sec_mst.sec_class
FROM
inv..trans,
mast..sec_mst,
mast..cust_mst,
mast..groupmst,
mast..curr_mst,
mast..contract
WHERE
inv..trans.cust_num = mast..cust_mst.cust_num
AND
inv..trans.group_id = mast..groupmst.group_id
AND
inv..trans.cusip = mast..sec_mst.cusip
AND
mast..sec_mst.currency_type = mast..curr_mst.currency_type
AND
mast..sec_mst.contract_code *= mast..contract.contract_code
AND
inv..trans.entity_id = 1

这是错误:

org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [query]; nested exception is java.sql.SQLException: Incorrect syntax near '?'. at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:237)

请注意,查询中没有问号!有人见过这样的事情吗?

最佳答案

我在 .sql 文件顶部发现了一些隐藏字符。这些必须是由 Aqua Data Studio 创建的。甚至 Notepad++ 都无法识别它们 - 只有 Eclipse 文本编辑器可以识别它们。

关于java - "nested exception is java.sql.SQLException: Incorrect syntax near '? ' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com