質問: 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の方が有利な気もしますが、行数が多くないと、有意な差は出て来ないと思います。