IT技術Labo - HouseTect

Javaフリーエンジニアとしての苦悩や、アーキテクトになるための努力の軌跡を掲載しています。.NETとJavaに力を入れた技術情報発信ブログです。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Oracleでは空文字とnullが一緒?


よく新人のときに先輩に言われた言葉がある。

それは、
「空文字とnullは違うからね!」
しかし、それを覆すデータベースが存在する。

Oracleである。

データベースを扱っていると、それぞれのデータベースによって癖みたいなものがあるので、ここらへんは要注意である。

それでは実際のSQLを見に行こう。



SELECT
  case
   when '' is not null then 'a' ①
   when '' is null then 'b' ②
  end
FROM
  dual


上記のSQLはなんと②がTrueになってしまう。
''がnullかどうか聞いているのに、Oracleでは''がnull扱いになってしまう。

Java側からSQLにバインド変数として渡すときに、''が入ってしまってもnull扱いになってしまうので、下手にnullにする必要がないのかもしれない。
いや、やっぱりnullはnullと設定してバインド変数に渡そう。

つまり、空文字を入れたければ「'半角スペース'」のようにして、シングルコートの間に半角スペースを入れるしかない。
あんまり使う機会があるかは分かりませんが。
スポンサーサイト



↓のボタンでこのブログの記事をランダムに表示します。

●Homeへ戻る●

COMMENT

Name
E-mail
URL
Comment
Pass  *
Secret? (管理者にだけ表示)

Pickup Link!

COUNTER



RSSの登録はこちらからどうぞ。
RSS

ブログ内の検索

Google

プロフィール

Hisasann

Author:Hisasann
かなり走り書きなブログで申し訳ないです。個人のメモ程度に使っていますが、よかったら参考にしてくださいね。メールまってま~す。

相互リンク募集しています。 下記メアドまでメールください。
Rastaman@Mixi
Rastaman@コトノハ
Rastaman@テクノラティ

アクセスランキング

ブログパーツ

ブログランキング



ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。