0

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 ビット製品

4

2 に答える 2

7

NUMBER必要がなければ、列に 10 進値が格納されることはありません。

TO_CHARただし、暗黙的なデータ型変換に依存するのではなく、明示的な変換を使用して、データを文字列に変換するときにデータをユーザーに表示する方法を制御できます。たとえば、呼び出しで書式マスクを使用する9.0TO_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

そうは言っても、ソフトウェアのバージョン情報NUMBERVARCHAR2. おそらく、データに対して数学演算を行っていないため、 を持つことの利点のほとんどはNUMBERテーブルから外れています。また、ソフトウェア バージョンは本質的に数値ではありません。多くの場合、2 つ以上のコンポーネントが必要になることがあります (つまり、Oracle 11.2.0.1)。また、ソフトウェアのバージョンには、非常に非数値的な処理が行われる傾向があります。4.9 に続くバージョンが 4.10 である場合、4.0 に続くバージョン 4.1 とは大きく異なります。ただし、を使用している場合はNUMBER、それらのバージョンを区別できなくなります。

于 2013-05-08T19:24:22.307 に答える
0

これをコードから隠す必要がある場合は、ビューを作成してこれらの詳細を非表示にします。

ただし、ジャスティンが示しているのと同じ理由で文字列になります。

于 2013-05-08T19:45:28.230 に答える