我在SQL-Server中有一个SQL命令,我需要将它迁移到Oracle,但是有一部分sql我不明白如何翻译它。这是sql:
select * from myTable where id = @id and (Mask & @Mask) = @Mask
我认为这是一个二元掩码,但我不太确定,我不知道我是否可以在Oracle中这样做,你能帮助我吗?
非常感谢
答案 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