JdbcPagingItemReader具有多个选择查询

时间:2014-10-17 11:21:38

标签: sql oracle11g spring-batch

我想写一个带有复杂查询的JdbcPagingItemReader,如:

从yyy中选择xxx,其中a = b和c =(从yyy中选择max(f),其中a = b)

...带参数。

以下是我编写查询的方式:

<bean
            class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="selectClause" value="SELECT ohrefnum" />
            <property name="fromClause" value="FROM orderhdr_all" />
            <property name="whereClause"
                value="WHERE customer_id =: CUSTOMER_ID AND ohentdate = (SELECT MAX (ohentdate) FROM orderhdr_all WHERE customer_id =: CUSTOMER_ID)" />
            <property name="sortKey" value="ohrefnum" />
        </bean>

但它引发了以下错误:java.sql.SQLException: Missing IN or OUT parameter at index:: 2

1 个答案:

答案 0 :(得分:0)

我发现问题的根源。它只是“=:”之后的空格字符

应该是

WHERE customer_id =:CUSTOMER_ID)

而不是

WHERE customer_id =: CUSTOMER_ID)