相关疑难解决方法(0)

使用Prepared Statements设置表名

我正在尝试使用预准备语句来设置表名以从中选择数据,但是在执行查询时我一直收到错误.

错误和示例代码显示如下.

[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();
Run Code Online (Sandbox Code Playgroud)

关于可能导致这种情况的任何想法?

java sql prepared-statement

27
推荐指数
1
解决办法
2万
查看次数

ORA-00903:PreparedStatement上的表名无效

我有一个方法将执行一个查询,其中包含准备语句的QueryParameters列表.该HelperConnectionQueryParameter只是小的Java bean和基础上,应该是不言自明的get,你在这里看到的秒.我尝试做select * from dual用,而不是select * from ?其中的QueryParameter是一个字符串类型和值dual.但是,我收到了一个java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name错误.我的代码和输出如下.这是怎么回事?

public static ResultSet executeQuery(HelperConnection helperConnection, String query, QueryParameter... params) throws SQLException {
  System.out.println("The connection is: " + helperConnection.getJdbcURL());
  System.out.println("The query is: " + query);
  if (params.length > 0) {
    System.out.println("The QueryParameters are:");
    System.out.println("\t" + StringHelper.splitBy(StringHelper.newline + "\t", params));
  }
  Connection conn = helperConnection.createOracleConnection();
  PreparedStatement pstmt = conn.prepareStatement(query);
  for (int i = 1; …
Run Code Online (Sandbox Code Playgroud)

java sql oracle jdbc

3
推荐指数
1
解决办法
3924
查看次数

标签 统计

java ×2

sql ×2

jdbc ×1

oracle ×1

prepared-statement ×1