小编典典

使用准备好的语句来设置表名

sql

我正在尝试使用准备好的语句来设置表名称以从中选择数据,但是在执行查询时,我总是收到错误消息。

错误和示例代码如下所示。

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.



private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date
public Execute(String reportDate){
    try {

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn = DriverManager.getConnection(Display.DB_MERC);
        PreparedStatement st = conn.prepareStatement(query1);
        st.setString(1, reportDate);
        ResultSet rs = st.executeQuery();

有什么想法可能会导致这种情况?


阅读 286

收藏
2021-05-05

共1个答案

小编典典

表名不能用作参数。它必须是硬编码的。因此,您可以执行以下操作:

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]";
2021-05-05