2016-05-09 10 views
0

の整数でエラーリストを取得私は2^n値としてIDが持つTABLE_OF_ERRORSを有しますTABLE_OF_ERRORSからの誤差の合計であるエラーコード:バイナリ変換

PROD1,'ERROR 2' 
PROD2,'ERROR 1' 
PROD2,'ERROR 3' 
PROD3,'ERROR 3' 
PROD3,'ERROR 4' 

PROD_ID,ERORS_CODE 
-------------------- 
PROD1, 2 
PROD2, 5 
PROD3, 12 

私は必要なものは、それにはこのafrificial ONE_TO_MANY関係を変換し、参加しています

ヒントをお聞かせください。

select p.*, toe.value 
from products p left join 
    table_of_errors toe 
    on bitand(p.errorscode, toe.id) > 0; 

私はあなたのデータ構造を変更することをお勧めします:私はあなたがBITAND()を使用することができますどのように開始する...

よろしく
パヴェル

答えて

1

見当がつかない。ビット・パッキングは、一部のコンピュータ言語では意味をなさないかもしれませんが、Oracleにとって特に有用ではありません。ジャンクション・テーブル、ネストしたテーブル、このタイプのデータ構造に適したJSONフィールドなど、他の多くの機能があります。

+0

あなたの答えをありがとう。唯一の注意点は、SQLではbitandの代わりにbit_andを使用したことです。私の構造によると、この構造はちょっと混乱していることはわかっていますが、残念ながらそれを変更するのは私の義務ではありません。 –

関連する問題