oracle能用hql吗,使用HQL查询日期,Oracle报“Invalid number”
如题,Oracle数据库里面有一批记录,现在我想根据其中一个叫:txn_date的字段来查询记录,在Hbm文件中我配置了该HQL,如下所示:
select {job.*} from Newsletter_Message job
where to_char(:dateType,'yyyy-mm-dd hh24:mi') =
to_char(:jobDate, 'yyyy-mm-dd hh24:mi')
在DAO方法中我使用了Spring的HibernateTemplate,方法如下:
public List getJobByDate(final Date jobDate, final String dateType) {
return (List getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Query query = session.getNamedQuery("job.getJobByDate");
query.setString("dateType", dateType);
query.setDate("jobDate",jobDate);
return query.list();
}
});
}
Hibernate生成的SQL语句如下
select job.TXN_NO as TXN1_5_0_,
job.TXN_TYPE as TXN2_5_0_,
job.TXN_DATE as TXN3_5_0_,
from Newsletter_Message job
where to_char(?, 'yyyy-mm-dd hh24:mi') = to_char(?, 'yyyy-mm-dd hh24:mi')
每次执行时,总是抛异常,说:
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not execute query;
.....
Caused by: java.sql.SQLException: ORA-01722: invalid number
我实在不明白为什么会报这个错误,难道Hibernate在set date或者set string之前不会对其进行格式的转换吗?于是我又换了另外一个HQL语句,在代码里面提前将Date格式成String,但还是报错:
where to_char(dateType,'yyyy-mm-dd hh24:mi') = :strDate
后来实在没办法了,用了一阴招,代码如下,测试通过,但是觉得这种代码太丑陋了。
public List getJobByDate(final Date jobDate, final String dateType) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
String strDate = DateUtil.convertDateToString(jobDate,
"yyyy-MM-dd HH:mm");
Query query = session.createQuery("from Job job where "+"to_char("+ dateType +",'yyyy-mm-dd hh24:mi') = '"+ strDate +"'");
return (List) query.list();
}
});
}
不知道各位能否解析一下上面那个报错的原因,谢谢先了!
[该贴被pengpenglin于2008-05-22 16:55修改过]
oracle能用hql吗,使用HQL查询日期,Oracle报“Invalid number”相关推荐
- oracle获取今天凌晨的时间_oracle查询日期语句有哪些?
oracle查询日期语句有:1.取得当前日期是本月的第几周,代码为[select to_char(sysdate,'W')]:2.取得当前日期是一个星期中的第几天,代码为[select sysdate ...
- oracle游标多线程,多线程jdbc游标分页查询原理 oracle和mysql分页
分页查询中如何使用多线程加快处理速度? 分页sql是拼起来的现在怎么优化可以提高展示速度:优化思路: 1.试试并发多线程访问,然后把多线程获取的结果合并在一起. 2.做索引,加快查询速度. 3.把经常 ...
- jpa oracle 传参int类型判空_SQL查询:Oracle、mysql、HQL查询语句差异
SQL是结构化查询语言,执行Select(选择).Update(更新).Delete(删除)和Insert(插入)等数据任务. mysql是一个关系型数据库,用于存储和检索数据. 关系数据库是指基于关 ...
- 深入HQL学习以及HQL和SQL的区别
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...
- rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- Oracle字符集的查看查询和Oracle字符集的设置修改
本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...
- oracle 查询天,Oracle查询_ 单表查询
前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...
- Oracle创建用户并给用户授权查询指定表或视图的权限
MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DN ...
- 体验一下Oracle 11g物理Active Data Guard实时查询(Real-time query)
以下为[高可用] 课后一则实验日志: --------------------------------------------------------------------------------- ...
最新文章
- [转]C++/CLI与C#常用语法对比
- winform中捕获程序未处理的所有异常
- Linux之bash脚本编程---选择执行
- 【推荐】让你事半功倍的交互体验自查清单
- 一起用C#做个五子棋的小游戏 增加了程序对战功能
- 全面解析并实现逻辑回归(Python)
- 为什么C语言函数不能返回数组,却可以返回结构体?
- P1447 [NOI2010]能量采集(mobius反演)
- 【51单片机快速入门指南】2.2:任意位/任意长度数码管显示数字、小数
- python将小数转为分数_Python分数
- rk3399_android7.1调试USB蓝牙模块小结
- 《淘宝网开店 进货 运营 管理 客服 实战200招》——1.11 开店前要做好调查,预测市场...
- 机器学习笔记【一】- 线性回归(末):统计学推导以及局部加权线性回归算法实例
- c语言大神,C语言入门大神有话说(一)
- 海思开发记录(一):3559A开发环境搭建
- 动态数组是怎么创建的?BQe
- “人在囧途”今年少有的国产好电影
- c# 蓝牙虚拟串口_32feet.net 蓝牙虚拟串口编程
- 1435 牛刀小试结构体
- Python技法-序列拆分