0,1の可変長フラグデータを扱う際のDBのデータ型について


0,1の可変長データ（例：00000001、10000000001）をOracleDBの一つのカラムで管理したい場合のデータ型は何が適切でしょうか？  
現状NUMBER型で設計していたのですが、可変長データを管理できないのではと考えております。  
VARCHAR2で最大ビット数のサイズを確保して管理するのが良いでしょうか。最大ビットサイズは50ビットを想定しています。

プログラムは、C#でOracleは19cになります。




  1. '0'と'1'だけを使う10進数として管理する場合  
NUMBER型の最大精度は38のため、50桁の2進数('0'と'1'だけを使う10進数)はNUMBER型で管理できないと思います。  
VARCHAR2を使うことになるでしょう。

  2. INPUTの2進数のデータを10進数に変換して管理する場合  
「領域サイズの面で有利なのは、NUMBERまたはVARCHAR2のどちらなのか」は、モデルを作って実際に計測してみないと、どちらが有利かを言い切れません。  
平均ビット数が小さい場合はVARCHAR2の方が有利な気もしますが、行数が多くないと、有意な差は出て来ないと思います。




  1. '0'と'1'だけを使う10進数として管理する場合  
NUMBER型の最大精度は38のため、50桁の2進数('0'と'1'だけを使う10進数)はNUMBER型で管理できないと思います。  
VARCHAR2を使うことになるでしょう。

  2. INPUTの2進数のデータを10進数に変換して管理する場合  
「領域サイズの面で有利なのは、NUMBERまたはVARCHAR2のどちらなのか」は、モデルを作って実際に計測してみないと、どちらが有利かを言い切れません。  
平均ビット数が小さい場合はVARCHAR2の方が有利な気もしますが、行数が多くないと、有意な差は出て来ないと思います。

