我的程序中,出现java.sql.SQLException: ORA-01008: 并非所有变量都已关联,这是什么原因呀?
解决方案 »
- 2个oracle数据库
- alter dababase flash on 失败
- m_pRecordset->MoveNext();记录集指针不移动了
- 用Pl/Sql developer 本地连接远程64位10g数据库,操作系统为winserver2003,执行select * from 有数据表时一直卡在execute状态?
- 刚学sql,问一个很简单的问题,
- 用Loadfromfile写入BLOB的jpg文件读取问题
- 在oracle中如何调用外部程序?---------急
- 急!!!数据库链未处于活动状态
- 请问oracle中的监听器是什么??
- VMware server 1.0.6安装时怎么注册
- oracle 合并多条查询记录为一条查询记录
- 如何调整oracle 表中字段的位置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.10.4:1521:surge</value>
</property>
<property name="username">
<value>op</value>
</property>
<property name="password">
<value>op</value>
</property>
</bean>
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
<prop key="hibernate.query.substitutions">true 1, false 0</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.c3p0.minPoolSize">5</prop>
<prop key="hibernate.c3p0.maxPoolSize">10</prop>
<prop key="hibernate.c3p0.timeout">120</prop>
<prop key="hibernate.c3p0.max_statement">100</prop>
<prop key="hibernate.c3p0.idle_test_period">120</prop>
<prop key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">30</prop>
<prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
<prop key="hibernate.jdbc.use_get_generated_keys">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="hibernateProperties">
<ref bean="hibernateProperties"/>
</property>
......
public Collection findCsHqSaleCardDtl(int pageNum, int pageCount, CsHqSaleCardHdr csHqSaleCardHdr, String fieldName, String orderType) throws DAOException {
List list = null;
String hql = "";
int firstResult = 0;
Session session = null;
try {
hql = "from CsHqSaleCardHdr t where 1=1 ";
//如果saleID(分配交易号)不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getSaleID()))){
hql = hql + " and t.saleID like '%" + StringUtil.doString(csHqSaleCardHdr.getSaleID())+ "%'";
}
//如果tradeID(分配交易号)不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getTradeID()))){
hql = hql + " and t.tradeID like '%" + StringUtil.doString(csHqSaleCardHdr.getTradeID())+ "%'";
}
//如果日期不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getSaleDateStr()))){
hql = hql + " and t.saleDate =To_Date('"+csHqSaleCardHdr.getSaleDateStr()+"', 'YYYY-MM-DD')";
}
//如果name不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getAgentName()))){
hql = hql + " and t.agentName like '%" + StringUtil.doString(csHqSaleCardHdr.getAgentName()) + "%'";
}
//如果tradeDetail不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getTradeDetail()))){
hql = hql + " and t.tradeDetail like '%" + StringUtil.doString(csHqSaleCardHdr.getTradeDetail())+ "%'";
}
//如果totalAmt不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getTotalAmt()))){
hql = hql + " and t.totalAmt like '%" + StringUtil.doString(csHqSaleCardHdr.getTotalAmt())+ "%'" ;
}
//如果discountratio不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getDiscountratio()))){
hql = hql + " and t.discountratio like '%" + StringUtil.doString(csHqSaleCardHdr.getDiscountratio()) + "%'";
}
//如果shouldReceiveAmt(实际总金额)不为空的情况作为查询条件
if(!"".equals(StringUtil.doString(csHqSaleCardHdr.getShouldReceiveAmt()))){
hql = hql + " and t.shouldReceiveAmt like '%" + StringUtil.doString(csHqSaleCardHdr.getShouldReceiveAmt()) + "%'";
}
hql = hql + " order by " + fieldName + " " + orderType +" ";
// 处理firstResult的值
if (pageNum <= 0) {
firstResult = 1;
} else {
firstResult = (pageNum - 1) * pageCount;
}
session = getSession();
Query query = session.createQuery(hql);
//设置游标起始位置
query.setFirstResult(firstResult);
//设置游标记录数
query.setMaxResults(pageCount);
list = query.list();
if ((list != null) && (list.size() > 0)) {
return list;
} else {
return new ArrayList();
}
} catch (DataAccessException ex) {
logger.error("查询点卡信息出现异常:" + ex.getMessage());
ex.printStackTrace();
throw new DAOException("查询点卡信息出现异常:" + ex.getMessage());
}
catch(Exception ex){
ex.printStackTrace();
logger.error("查询点卡信息出现异常:" + ex.getMessage());
throw new DAOException("查询点卡信息出现异常:" + ex.getMessage());
}
finally{
//释放session对象
releaseSession(session);
}
}
Query query = session.createQuery(hql);
这句里面的hql用System.out.print出来值贴出来?
然后把hql的值放到Oracle数据库里面单独执行一下,看有没有什么错误?