空の文字列はどうやってOracleで扱いますか?Oracleの空の文字列
ステートメント#1:Oracleは、 "varchar2"フィールドで空の文字列(たとえば '')をNULLとして扱います。
声明#2:私たちは、がNULLではないことを、私たちはフィールドを持っているために抽象的な「テーブルの構造」を定義していますが、は「空」することができモデルを持っています。このモデルはさまざまなDBMSで動作します。ほぼすべての場所で、すべて正常ですが、Oracleではうまくいきません。空でない文字列を "not null"フィールドに挿入することはできません。
ステートメント#3:この例では空のデフォルト値は使用できません。
だから、誰かが私に教えてくれてとても親切なのでしょうか?どうすれば解決できますか?
"これは何年も前に行った馬鹿げた決定に基づいています"そうです。後方互換性は決して問題ではないからです。 Oracleは、この動作に依存するコードのボート・ロードを中断することなく、空の文字列の動作を安全に変更できます.- – NullUserException
@Null、互換性を損なうことなくこれを修正できる方法はいくつもあります。あなたのコメントを読んでから1秒以内に私の頭の中に飛び込んだ。「準拠」モードでそれを動かす特定のコードにフラグを設定できるようにした。そうすれば、すべてのコードに対して明示的にフラグを設定しなければ、完全な互換性が得られます。特定のコードでNULLを正しく扱うようにするには、そのフラグを設定します。もうゴミコードがないことを確信したら、フラグをグローバルに設定します。これらの "kludge"ビットは少なくともData Generalの時代からのものです:-) – paxdiablo
これはSQL Serverの 'ANSI NULLS 'と似ていますが(例:' SET ANSI NULLS ON')、異なる環境で動作することができます大きな混乱の原因となる。 – NullUserException