BIN_TO_NUM
構文
目的
BIN_TO_NUM
は、ビット・ベクトルを同等の数値に変換します。このファンクションの各引数は、ビット・ベクトルのビットを表します。このファンクションは、引数として、任意の数値データ型、または暗黙的にNUMBER
に変換可能な数値以外のデータ型を取ります。各expr
は、0または1に評価される必要があります。このファンクションはOracleのNUMBER
値を戻します。
BIN_TO_NUM
は、データ・ウェアハウスのアプリケーションで、グルーピング・セットを使用して、マテリアライズド・ビューから対象グループを検索する場合に有効です。
関連項目:
-
GROUPING
SETS
構文の詳細は、「group_by_clause」を参照してください。 -
暗黙的な変換の詳細は、表2-9を参照してください
-
データ集計の詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。
例
次の例では、バイナリの値を数値に変換します。
SELECT BIN_TO_NUM(1,0,1,0) FROM DUAL; BIN_TO_NUM(1,0,1,0) ------------------- 10
次の例では、3つの値を1つのバイナリの値に変換し、BIN_TO_NUM
を使用してこのバイナリを数値に変換します。この例では、PL/SQL宣言を使用して元の値を指定します。これらの値は、通常は実際のデータソースから導出されます。
SELECT order_status FROM orders WHERE order_id = 2441; ORDER_STATUS ------------ 5 DECLARE warehouse NUMBER := 1; ground NUMBER := 1; insured NUMBER := 1; result NUMBER; BEGIN SELECT BIN_TO_NUM(warehouse, ground, insured) INTO result FROM DUAL; UPDATE orders SET order_status = result WHERE order_id = 2441; END; / PL/SQL procedure successfully completed. SELECT order_status FROM orders WHERE order_id = 2441; ORDER_STATUS ------------ 7
この逆の(1つの列値から複数の値を抽出する)プロセスの詳細は、「BITAND」の例を参照してください。