desc-fetch:java中的n行

wkftcu5l  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(204)

我有一个方法包含这样的查询

public List<Order> getOrders (int customer_id, int count)
{
  String sql= "select * from order where customer_id = ? order by order_id DESC FETCH FIRST ? ROWS 
  ONLY"
}

我想做的是根据给定的输入(count)列出订单。我得到这样的错误

Missing IN or OUT parameter at index:: 2

如果我去掉第二个?我写 DESC FETCH FIRST 5 ROWS 它执行成功。我想我不能在desc fetch语句中使用salary参数。你知道吗?

tktrz96b

tktrz96b1#

确实没有限制 DESC order\ by\ U子句和row\ U limiting\ U子句中的order
你不能设置第二个参数。。。
下面是一个带有标记行的jdbc示例,如果注解掉它,就会导致异常

def stmt = con.prepareStatement("""select order_id from getOrders 
                                   where customer_id = ? 
                                   order by order_id DESC
                                   FETCH FIRST ? ROWS ONLY""")
stmt.setInt(1,1001)  /* Bind customer_id = 1001 */
stmt.setInt(2,3)  /* bind count of rows = 3; uncomment to get java.sql.SQLException: Missing IN or OUT parameter at index:: 2  */

def rs = stmt.executeQuery()

while(rs.next())
  {
   println "order_id= ${rs.getInt(1)}"
  }

相关问题