如何使用 SQL 命令在 Oracle 中设置数字的特定位?只有BITAND
运营商
BITAND (DEPENDENCY_MAP, 2)
在 DEPENDENCY_MAP 中,每一位都定义了一种类型依赖性。使用此命令,我可以找到第二位是否已设置。但是如何修改此位?
设置位:
UPDATE <table name>
SET DEPENDENCY_MAP = DEPENDENCY_MAP + 2 -- Set the bit (the row must not have the bit set already)
WHERE BITAND (DEPENDENCY_MAP, 2) = 0 -- This will match rows that don't have the bit set
AND <add your own row filters>
要清除该位:
UPDATE <table name>
SET DEPENDENCY_MAP = DEPENDENCY_MAP - 2 -- Clear the bit (the row must have the bit set already)
WHERE BITAND (DEPENDENCY_MAP, 2) > 0 -- This will match rows that do have the bit set
AND <add your own row filters>
注意: 上面的代码适用于正数。我没有费心去弄清楚如果 DEPENDENCY_MAP 是负数会发生什么,因为我假设你没有负数。