博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle数据库中NARCHAR转换成NUMBER类型
阅读量:6411 次
发布时间:2019-06-23

本文共 1376 字,大约阅读时间需要 4 分钟。

1.修改后的代码:

public void addDirectorActorKeyword(long idStart, long idEnd) {        SeriesMgr seriesMgr = new SeriesMgr();        String strCondition = "";        List
paramlist = new ArrayList
(); List
seriesList = new ArrayList
(); if(idStart != 0 && idEnd != 0){ //以下两种sql方式都可以...Series表中parentmmobjectid为NVARCHAR2类型,不能使用直接使用between and //strCondition = " to_number(parentmmobjectid) between ? and ? "; strCondition = " parentmmobjectid between to_number(?) and to_number(?) "; paramlist.add(idStart); paramlist.add(idEnd); seriesList = seriesMgr.find(strCondition, paramlist,"parentmmobjectid asc"); } ******** }

直接执行sql语句是可以正常查询到内容的,上面代码对应Hibernate翻译成的sql语句是 select * from series where parentmmobjectid between '11111'  and '99999';可以正常的的查询到内容.

但是通过Hibernate进行查询,对应的如果是strCondition = "  parentmmobjectid between ? and ? "; 就查询不到...

原因就是在设置表字段的时候parentmmobjectid设置成了NVARCHAR类型,Oracle中的隐式自动转换没有NARCHAR类型到Number类型的转换,需要借助to_number()函数.

select * from emp where hiredate = '17-11月-81'; 这个就是一个字符串转换成了日期.

隐式转换的前提:被转换对象是可以转换的

select * from emp where deptno = 10 和 select * from emp where deptno = '10'是一样的.

显示转换:

 

本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/7390231.html,如需转载请自行联系原作者

你可能感兴趣的文章
Golang性能调优入门
查看>>
sqlloader外部表
查看>>
golang笔记——数组与切片
查看>>
屏蔽可忽略的js脚本错误
查看>>
散文分享
查看>>
【Vue】vue.js常用指令
查看>>
NFS学习
查看>>
MySql常用命令总结
查看>>
又一年...
查看>>
文件上传框的美化+预览+ajax
查看>>
Linux VFS
查看>>
ext不能选中复制属性_如何实现Extjs的grid单元格只让选择(即可以复制单元格内容)但是不让修改?...
查看>>
python中print的作用*8、不能+8_在 Python 3.x 中语句 print(*[1,2,3]) 不能正确执行。 (1.0分)_学小易找答案...
查看>>
python 生成html代码_使用Python Markdown 生成 html
查看>>
axure如何导出原件_Axure 教程:轻松导出图标字体所有图标
查看>>
laravel input值必须不等于0_框架不提供,动手造一个:Laravel表单验证自定义用法...
查看>>
cad填充图案乱理石_太快了吧!原来大神是这样用CAD图案填充的
查看>>
activator.createinstance 需要垃圾回收么_在垃圾回收器中有哪几种判断是否需要被回收的方法...
查看>>
rocketmq 消息指定_RocketMQ入坑系列(一)角色介绍及基本使用
查看>>
redis zset转set 反序列化失败_掌握好Redis的数据类型,面试心里有底了
查看>>