sql >> データベース >  >> RDS >> Oracle

OracleでLongデータ型がLOBに置き換えられたのはなぜですか?

    LOBは、実際には4つの異なるデータ型です。LONGの場合はCLOB、LONG RAWの場合はBLOB、さらにBFILEとXMLTypeです。 LONG(およびLONG RAW)はTeh Suckであるため、Oracleは1990年代にこれらのタイプを導入しました。作業が非常に困難です。データベースのバージョンが8.0以上の場合、LOBのLONGintseadを使用する理由はありません。

    では、なぜまだLONGがあるのですか?

    LONGとCLOBはプリミティブデータ型です。したがって、理論的にはOracleがLONGを修正して、データベースを8.0(LOBを導入したバージョン)にアップグレードする際に壊滅的な影響を与えるCLOBの「追加の特別な機能」を実際に持つことができたはずです。

    壊滅的であると言うことはおそらく双曲線ですが、実際にはCLOBスタイルの機能をLONGに後付けすることは、データ型を変更することを意味します。 。したがって、アップグレードには自動データ変換を含める必要がありました。さらに、動作を変更する必要があると思われるあらゆる種類の低レベルのルーチンがおそらく存在します。これは、データ破壊の巨大なベクトルにすぎません。新しいデータ型を導入し、個々のサイトに移行を処理させる方がはるかに簡単です(したがって安全です)。

    Oracleは8.0以降LONGを非推奨にし、LONGをCLOBに変換するメカニズムを提供しました。したがって、理想的な世界では、誰もが先に進み、OracleはデータベースからLONGデータ型を削除できます。しかし、実際には多くの店がまだLONGを使用しており、多すぎると壊れてしまいます。

    したがって、Oracleはそれらを保持する必要があります。問題の規模は、Oracleがデータディクショナリ(USER_ / ALL_ / DBA_VIEWSなど)でLONG自体を引き続き使用しているという事実から導き出すことができます。




    1. sql-serverのISO_yearとは何ですか

    2. ユーロ記号をmysqlデータベースに保存する方法は?

    3. pythonmysqldb削除行

    4. PG ::GROUPBY句のエラー