二进制面具oracle

时间:2013-08-08 07:33:32

标签: sql sql-server oracle oracle10g

我在SQL-Server中有一个SQL命令,我需要将它迁移到Oracle,但是有一部分sql我不明白如何翻译它。这是sql:

select * from myTable where id = @id and (Mask & @Mask) = @Mask

我认为这是一个二元掩码,但我不太确定,我不知道我是否可以在Oracle中这样做,你能帮助我吗?

非常感谢

1 个答案:

答案 0 :(得分:5)

你是对的 - 这是二元面具。

Oracle仅提供BITAND功能,其他(BITOR,BITXOR)必须是自制的。

使用BITAND功能,此选择将​​返回值2:

SELECT BITAND(6,2) FROM DUAL;

因此,您在Oracle中的查询可以通过以下方式重写:

select * from myTable where id = :id and BITAND(Mask, :Mask) = :Mask