Oracle
とてもとてもとても古いです。
80年代
に戻る それが開発されたとき(そして標準が存在する前に)、彼らはそれが良い考えであると考え、そして Oracle
に道を譲りました その値を保存します、それは本当にそうでした。
Oracle
の方法は次のとおりです データを保存します(ドキュメントから取得) ):
データ型はデータ内に保存されず、データ長とデータ自体のみが保存されます。
NULL
の場合 値を持つ2つの列の間に発生し、1バイトとして格納されます。これは、列の長さが 0
であることを意味します。 (実際には、 0xFF
)。末尾のNULL
はまったく保存されません。
したがって、値を保存するには'test'
、 Oracle
5バイトを格納する必要があります: 04 74 65 73 74
。
ただし、空の文字列と NULL
の両方を格納するには 、 Oracle
データ長を0
に設定するだけです 。
データを20Mb
に保存する場合は、非常にスマートです 5,000 $
のハードドライブ それぞれ。
その後、標準が登場したとき、それはもはやそれほど良い考えではありませんでしたが、その時までに、<code> NULLに依存するコードがすでにたくさんありました。 および''
同じことです。
VARCHAR
を作成する そのような区別をすることはトンを壊します コードの。
これを修正するために、彼らは VARCHAR
に名前を変更しました VARCHAR2
へ (これは標準の一部ではありません)、 VARCHAR2
決して NULL
を区別する 空の文字列を使用して、代わりにこのデータ型を使用するように全員に促しました。
今、彼らはおそらく VARCHAR
を使用した最後の人を待っています Oracle
で 死ぬデータベース。