在我的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();
请指导。
答案 0 :(得分:2)
您告诉您的查询,您将使用 6个参数,但只设置了 4个参数,您错过了放置:place
和:time
在其他参数中,所以你必须使用:
nativeQuery.setParameter("place", place);
nativeQuery.setParameter("time", time);
在执行查询之前,您必须将其从查询中删除
答案 1 :(得分:1)
您应该跳过()
:
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)