【问题标题】:SQLSyntaxErrorException - ORA-02287: sequence number not allowed hereSQLSyntaxErrorException - ORA-02287: 此处不允许序列号
【发布时间】:2017-08-06 07:40:43
【问题描述】:

在我的 java 代码中,我正在尝试执行插入操作,但由于某些原因,我得到了 SQLSyntaxErrorException 。虽然我试过了,但我没有得到背后的原因。下面是我的代码。

Query nativeQuery = em.createNativeQuery(
            "insert into TABLE_DIMENSION (DIMESNION_ID, DIMENSION_CODE, TABLE_CODE, TABLE_IND, CREATE_TIME, "
            + "CREATE_PLACE, CHG_DT, CHG_WARDANT) "
            + " (select TABLE_DIMENSION_SEQ.nextval, d.name,:dimensionCode, 0, :time, :place, :date, :wardant from table_master d where d.name in (:table_dimension_ids)) ");
        nativeQuery.setParameter("date", new Date());
        nativeQuery.setParameter("table_dimension_ids", tableDimensionList);
        nativeQuery.setParameter("dimensionCode", dimensionCode);
        nativeQuery.setParameter("wardant", wardant);
        number = nativeQuery.executeUpdate();

请指导。

【问题讨论】:

  • 除了select 周围的多余括号外,SQL 看起来还不错。 TABLE_DIMENSION 真的有一个名为DIMESNION_ID 的列吗? (虽然无效的列名会给出不同的错误消息。)
  • “请指导”这里有一些指导:谷歌它:ORA-02287: sequence number not allowed here。然后你会找到很好的帮助。
  • @Andreas :多年来我一直在谷歌搜索。由于没有与我类似的相关问题,而且我在某个地方觉得我的代码是正确的并且无法正常工作,所以我提出了这个问题!
  • 我同意我们应该在发布问题之前做出努力,我已经完成了我的工作。我没有直截了当地寻求帮助。这是一个需要解决的问题,我觉得 stackoverflow 的专业知识可以提供帮助,而且确实如此。您可以参考我接受的答案:)
  • 你的努力应该给你带来here,然后你的问题就不需要了,因为你已经知道你不能在子查询中使用序列“.

标签: java oracle hibernate jpa


【解决方案1】:

您告诉您的查询您将使用 6 个参数,但您只设置了 4 个参数,您缺少将 :place:time 放入参数中,例如其他的,所以你必须使用:

nativeQuery.setParameter("place", place);
nativeQuery.setParameter("time", time);

在执行查询之前,您必须将其从查询中删除

【讨论】:

  • :time 也丢失了,这与错误消息无关。
【解决方案2】:

你应该跳过():

insert into TABLE_DIMENSION 
       (DIMESNION_ID, DIMENSION_CODE, TABLE_CODE, TABLE_IND
       , CREATE_TIME, CREATE_PLACE, CHG_DT, CHG_WARDANT)
select TABLE_DIMENSION_SEQ.nextval, d.name,:dimensionCode, 0
       , :time, :place, :date, :wardant 
from table_master d 
where d.name in (:table_dimension_ids) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2020-03-31
    • 2018-11-16
    • 2013-06-07
    相关资源
    最近更新 更多