ホームページ >データベース >mysql チュートリアル >Oracle は空の文字列を NULL として扱いますか?
Oracle 独自の空文字列の処理: NULL か非 NULL?
Oracle 9i では、空の文字列 ('' ) を NULL とみなすという慣行が多くの開発者を混乱させてきました。文字を格納するように設計されたデータ型が、有効な文字列を欠落データとみなすのはなぜでしょうか?
この特殊性を理解するには、Oracle の歴史を詳しく調べる必要があります。 SQL 標準が登場する前に、Oracle は空の文字列を NULL 値として扱うように VARCHAR/VARCHAR2 列を定義しました。この設計は、Oracle の NULL の独自の解釈に基づいており、あらゆる形式の欠落データをカバーします。
SQL 標準が登場し、NULL と空の文字列の違いが確立されたとき、Oracle はジレンマに直面しました。既存の VARCHAR 列の動作を変更すると古いコードが壊れ、標準に違反すると業界の慣例から逸脱します。混乱を最小限に抑えるために、Oracle は元の定義を保持するという物議を醸す決定を下しました。
オラクルは、この慣行が標準から逸脱していることを認めていますが、標準に合わせて将来変更される可能性がある余地を残しています。したがって、開発者は、コードの将来の互換性を確保するために、VARCHAR よりも VARCHAR2 を優先することが賢明です。 Oracle がなぜこの異常な動作を維持するのかについては多くの憶測が飛び交っていますが、その理由はおそらく公式の謎のままであり、おそらく、絶えず変化する標準環境において下位互換性を維持する必要性に根ざしていると考えられます。
以上がOracle は空の文字列を NULL として扱いますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。