SQLコマンドを使用してOracleで数値の特定のビットを設定するにはどうすればよいですか?BITAND
演算子しかありません
BITAND (DEPENDENCY_MAP, 2)
DEPENDENCY_MAPでは、すべてのビットが1つのタイプ依存関係を定義します。このコマンドを使用すると、2番目のビットが設定されているかどうかを確認できますが、このビットを変更するにはどうすればよいですか?
ビットを設定するには:
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が負の数である場合に何が起こるかをわざわざ理解していません。これは、負の数がないと想定しているためです。