Is it possible to refer to column names via bind variables in Oracle?

前端 未结 3 1515
生来不讨喜
生来不讨喜 2020-12-19 13:30

I am trying to refer to a column name to order a query in an application communicating with an Oracle database. I want to use a bind variable so that I can dynamically chang

3条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-19 14:14

    As you are using JDBC. You can rewrite your code, to something without bind variables. This way you can also dynamically change the order-by e.g.:

    String query = "SELECT * FROM PERS ";
    if (condition1){
      query = query+ " order by name ";
    // insert more if/else or case statements
    } else {
      query = query+ " order by other_column ";
    }
    Statement select = conn.createStatement();
    ResultSet result = select.executeQuery(query);
    

    Or even:

    String columnName = getColumnName(input);
    Statement select = conn.createStatement();
    ResultSet result = select.executeQuery("SELECT * FROM PERS ORDER BY "+columnName);
    

提交回复
热议问题