Oracle 9i: VARCHAR 列で空の文字列が NULL と等しい理由
Oracle 9i による VARCHAR 列内の空の文字列 ('') の NULL 値としての処理は、歴史的な成果です。 Oracle の初期のバージョンでは、空の文字列を NULL 値と同等として解釈するように VARCHAR 列と VARCHAR2 列が設計されていました。これは、欠損値 (空の文字列) は未知の値 (NULL) と機能的に同一であるという考えに由来しています。
その後、SQL 標準では NULL 文字列と空文字列の明確な区別が定義されました。 これにより、Oracle は、VARCHAR 列の動作を変更して既存のアプリケーションを破壊するか、標準に違反するか、標準への準拠を犠牲にして下位互換性を維持するかという難しい選択を迫られました。
Oracle は下位互換性を優先し、VARCHAR の既存の動作を維持することを選択しました。 SQL 標準とのこの非互換性に対処するために、Oracle は、今後のリリースで標準の NULL 文字列と空文字列の区別に準拠することが保証されたデータ型である VARCHAR2 を導入しました。 したがって、開発者は、将来の互換性の問題を回避するために、新しいプロジェクトには VARCHAR2 を使用し、既存のコードを移行することを強くお勧めします。
以上がOracle 9i の VARCHAR 列で空の文字列が NULL として扱われるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。