具有聚合函数的JDBC PreparedStatement在Select子句中的动态列上

时间:2017-04-06 12:30:51

标签: java jdbc max prepared-statement

我试图使用一个实用工具,我可以在表格的每一列中获得最大的数据长度。

  1. 我列表中有列。
  2. 我查看了每个清单。
  3. 执行以下准备好的声明。

    String sql = "select max(datalength(?)) from Positions"; 
    
    for(Iterate over list of column names) 
     {
         preparedStatement.setString(1, StringUtils.trim(columnName));
         ResultSet rs =  preparedStatement.executeQuery();
         if (rs.next()) {
            int length1 = rs.getInt(1);
            //print column name and max data length
         }
      }
    
  4. 似乎带有max函数的预准备语句使动态列不起作用。它给出了不正确的值。

    可以使用select子句中的动态列准备语句。

1 个答案:

答案 0 :(得分:0)

试试以下..

Select max(length(<column_name>)) as max_length

From <Table_name>;