我正在使用 JDBC 连接从 Access 数据库获取数据。
数据库设计不是我的控制。数据库中有些列带有“?”包含在他们的名称中,例如:Open?
、Paid?
等等。
当我尝试使用PreparedStatement 获取数据时,出现错误。查询是:
SELECT Open? FROM tblJobList WHERE WeekEnding=?
我也尝试使用像[Open?]
这样的括号,但结果是一样的。
我收到的错误是“参数太少...”,因为我只将一个参数插入PreparedStatement。
由于 WeekEnding=?
,我无法使用普通语句,因为该值是时间戳,我无法设法将其与语句一起使用。只有准备好的语句在这里才有效。
谁能告诉我如何在PreparedStatement中使用这些类型的列名?
最佳答案
使用“字符
"SELECT \"Open?\" FROM tblJobList WHERE WeekEnding=?"
针对 Oracle 进行了测试,似乎可以与 mssqlserver 一起使用
How to select a column in SQL Server with a special character in the column name?
关于java - 列名中包含 "?"的 JDBCPreparedStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16431913/