1.1、1.2 などのバージョン情報を格納するフィールドがあります。ただし、4.0 は 4、5.0 は 5 として格納されます。
.0 を強制的に表示する方法はありますか?
NUMBER(5, 3) および DECIMAL(5, 3) データ型を試しましたが、どちらも機能しません。
バージョン - Oracle Database 11g Enterprise Edition リリース 11.2.0.2.0 - 64 ビット製品
NUMBER
必要がなければ、列に 10 進値が格納されることはありません。
TO_CHAR
ただし、暗黙的なデータ型変換に依存するのではなく、明示的な変換を使用して、データを文字列に変換するときにデータをユーザーに表示する方法を制御できます。たとえば、呼び出しで書式マスクを使用する9.0
とTO_CHAR
、生成される文字列には常に 10 進数が 1 桁になります。
SQL> select to_char( 4, '9.0' )
2 from dual;
TO_C
----
4.0
SQL> ed
Wrote file afiedt.buf
1 select to_char( 4.1, '9.0' )
2* from dual
SQL> /
TO_C
----
4.1
そうは言っても、ソフトウェアのバージョン情報NUMBER
をVARCHAR2
. おそらく、データに対して数学演算を行っていないため、 を持つことの利点のほとんどはNUMBER
テーブルから外れています。また、ソフトウェア バージョンは本質的に数値ではありません。多くの場合、2 つ以上のコンポーネントが必要になることがあります (つまり、Oracle 11.2.0.1)。また、ソフトウェアのバージョンには、非常に非数値的な処理が行われる傾向があります。4.9 に続くバージョンが 4.10 である場合、4.0 に続くバージョン 4.1 とは大きく異なります。ただし、を使用している場合はNUMBER
、それらのバージョンを区別できなくなります。
これをコードから隠す必要がある場合は、ビューを作成してこれらの詳細を非表示にします。
ただし、ジャスティンが示しているのと同じ理由で文字列になります。