bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND
我正在使用Fluent NHibernate 1.0RC(对于NHibernate 2.1.4000)以及
Linq 2 NHibernate,我想用按位和操作执行查询.我第一次尝试使用这样的Linq,但这不起作用:
var objects = _session.Linq()
.Where(x => (x.someInteger & otherInteger) > 0)
.ToList();
我的结论是Linq 2 Nhibermate不支持按位操作.所以我尝试使用HQL:
var objects = _session.CreateQuery("select c from MyClass c
where c.someInteger & :param > 0")
.SetParameter("param", otherInteger)
.List();
这也不起作用.它给了我一个ora-01036错误:“非法变量名称/号码”.
所以我的问题是:甚至可以使用NHibernate的按位运算吗?是否支持NHibernate 3.0开箱即用?这是有问题的,因为我使用的是Oracle DB,它会期望bitand()函数而不是&操作符?
最佳答案 您可以扩展Oracle方言并将BITAND添加为recoginzed HQL函数:
public class OraclePlusDialect : Oracle10gDialect
{
public OraclePlusDialect()
{
RegisterFunction("bitand", new StandardSQLFunction("bitand", NHibernateUtil.Int32));
}
}
然后你应该能够像这样执行你的查询:
var objects = _session.CreateQuery("select c from MyClass c
where bitand(c.someInteger, :param) > 0")
.SetParameter("param", otherInteger)
.List();
可能,Oracle有一个类型转换问题,因为BITAND返回一个很少使用的数据类型.如果是这种情况,请将HQL查询修改为:
select c from MyClass c
where bitand(c.someInteger, :param) + 0 > 0
bitwise oracle,linq – 与NHibernate和Oracle的Bitwise AND相关推荐
- ssh oracle id native,hibernate解决oracle的id自增?
以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...
- oracle 表列 自增,ORACLE表建立自增列
create tablespace studentDB datafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Bo identi ...
- oracle实例没有连到监听上6,oracle LISTENER未监听到oracle实例问题解决
oracle LISTENER未监听到oracle实例问题解决 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...
- oracle参数文件initorcl位置,ORACLE参数文件
ORACLE参数文件 简介 参数文件记录了数据库的配置.在数据库启动时,Oracle要根据参数文件中的参数配置数据库.如果为各个内存池分配多少内存,允许打开的进程数和会话数等.要让数据库启动,必须先读 ...
- oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64
说明:11g数据库现在新部署的数量也很多的,对于10g数据库,现在整理一下10g到11g的升级过程.10.2.0.2以上版本才能升级到11.2.0.3版本. 升级说明:10.2.0.5(64)-> ...
- 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g
加入 oracle Club 之前,学长给我们开了个小会 说是看看我们加入的意愿,哎哎 其实直无聊,但是大体比较重视linux 服务器的搭建 以及在linux 下安装oracle 搭建一个oracl ...
- ubuntu下oracle数据的导入,导入oracle数据库命令行
Windows DOS窗体下Oracle 数据库的导入导出命令 oracle 用户创建 数据库的导入导出imp/exp 可以在SQLPLUS.EXE或者DOS(命令行)中执行 执行环境:可以在SQLP ...
- cmd导入oracle库文件,cmd 导入oracle数据库
从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地 在CMD模式下执 ...
- chown -r oracle:oinstall /oracle,ORA-17503: 因为CHOWN -R ORACLE:OINSTALL 导致的
ORA-17503: 由于CHOWN -R ORACLE:OINSTALL 导致的 在启动 时候报 ksfdopn:2 Failed to open file +DATA/camsdb/spfilec ...
最新文章
- shell expect的简单用法
- 解决go get 下载慢的问题
- 知识管理促进企业组织能力提升
- IBASE Read buffer invalidate when locked
- 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go
- 预约购票 php,正式上线!预约购票、参访攻略...你最关心的都在这!
- Google Earth 使用的经纬度格式及转换
- DROOPYCTF WALKTHROUGH
- 目前计算机无法显示的四叠字,四叠字大全列表
- 第6章 分支语句和逻辑运算符
- centos桌面显示计算机图标,Centos 桌面图标
- Log4Qt 日志格式化(TTCCLayout)
- 新时达工业机器人技术储备_国内外工业机器人发展现状-工业机器人技术国内外发展现状与趋势...
- Ubuntu 14.04.2 系统无线网络不稳定问题
- PHP Redis使用手册
- 微信公众号 去除 “防欺诈盗号请勿支付或输入qq密码“ 提示
- win10计算机导航栏怎么删除,如何自定义导航栏?win10资源管理器导航栏删除多余选项的操作方法...
- 超硬核!兔兔阿里p7学长给的面试知识库
- linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结
- cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动