当前位置: 首页 > 面试题库 >

在查询中使用带有间隔的prepareStatement时出错

井逸明
2023-03-14
问题内容

当运行这个查询SELECT SYSDATE + INTERVAL '7' DAY FROM DUAL;prepareStatement这样的

    PreparedStatement ps =  connection.prepareStatement("select sysdate + interval ? day from dual" );      
    ps.setString(1, "7");
    ps.executeQuery();

它将抛出一个异常,即语法不好,很明显,因为我可以在sql-developer中运行相同的查询。

这是错误PreparedStatement吗?我可以同时使用准备好的语句和间隔吗?


问题答案:

整个表达式INTERVAL '7' DAY都是文字,您不能简单地用变量(参数)替换它的一部分。请改用该函数NUMTODSINTERVAL(?,'DAY')



 类似资料:
  • 我有一个本机查询要在Spring的@Query注释中使用。问题是我无法为LIMIT AND INTERVAL等非标准子句传递参数。 1) 是否可以在注释中传递限制参数。2) JPA中的程序等价物是什么。它有可以使用的查询接口吗? 此外,不会为每个查询更改limit和interval子句,但应该在jvm启动时设置。

  • 问题内容: 我有一个典型的带有静态参数的交叉表查询。它与createStatement配合良好。我想使用preparestatement来查询。 但这似乎不起作用。 我得到一个PSQLException-无法使用在PreparedStatement上采用查询字符串的查询方法。 有什么想法我想念的吗? 问题答案: 您已经陷入了令人困惑的类型层次结构: 具有与相同的方法,但不应该使用它们,仅使用-–

  • 问题内容: 我正在编写一个利用JavaScript超时和间隔来更新页面的应用程序。有没有办法查看设置了多少间隔?我想确保不会因设置数百个间隔而意外杀死浏览器。 这甚至是个问题吗? 问题答案: 我不认为有一种方法来枚举活动的定时器,但是你可以重写,并与自己的实现其做一些跟踪,然后调用原件替换它们。 当然,您不一定总是调用,但这至少可以为您提供某种方式来跟踪运行时发生的情况。

  • 我正在我的项目中使用Hibernate,并使用如下所示的“查询”。 我得到结果了。当我使用下面这样的泛型时 得到结果是因为“?”是通配符(或),它将接受任何数据类型 当我使用下面的代码时,会出现一些错误(java.lang.IllegalArgumentException:Update/Delete queries Count be typed)。我使用整数数据类型,因为createQuery在执

  • 假设我有一个这样的范围列表 现在我想找到一个范围,比如。我的算法应该给我这个范围的所有范围。例如,这个的输出应该是 <代码>输出-[1,3]、[2,5]、[4,6]、[8,10] 我该如何着手解决这个问题? PS:我知道段树可能会有所帮助。我可以在其中构建树来存储间隔并查询位于间隔内的Point,但如何在给定间隔的情况下获取所有间隔。