我正在学习SQL和。
我在我的程序中创建了一个SQL语句管理器,并在我的java文件中使用了它。下面是SQL语句。
mapSQLStmt.put("valcurpcustomer", "select * from acnts left join clients on acnts.acnts_client_num = clients.clients_code where acnts.acnts_internal_acnum = '?' and clients.clients_type_flg='C' ");
下面是我如何将acnts.acnts_internal_acnum传递到语句中。
revalDTO.clearMap();
revalDTO.setValue("SQLToken","valcurpcustomer");
revalDTO.setValue("Args",corpcust.trim());
revalDTO.setValue("DataTypes","S");
revalDTO = qrymgr.getInfo(revalDTO);
if(revalDTO.getValue("Result").equalsIgnoreCase("RowPresent")) {
}
else if (revalDTO.getValue("Result").equalsIgnoreCase("RowNotPresent")) {
revalDTO.setValue(ErrorKey, "Only Corporate Customer ... ");
merrmsg = "MF:txtCustomerCode|"+revalDTO.getValue(ErrorKey).toString();
return false;
}qrymgr是查询管理器。
但是,即使我要在DB中传递现有字段,我也会得到这个错误。
请教育我,或指出我可以学习的方向。
我为我的英语道歉,我用的是翻译。
发布于 2022-10-24 09:48:32
SQL语句唯一明显的问题是,您在?占位符周围放置了单引号。尝试使用此版本:
SELECT *
FROM acnts a
LEFT JOIN clients c ON a.acnts_client_num = c.clients_code
WHERE a.acnts_internal_acnum = ? AND -- Note: NO single quotes around ?
c.clients_type_flg = 'C'https://stackoverflow.com/questions/74179172
复制相似问题