【发布时间】: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,然后你的问题就不需要了,因为你已经知道你不能在子查询中使用序列“.