≪ ≪ エスケープ処理 ORACLE、SQLServerの相違点というか。。 ≫ ≫

DataBaseでの文字列型、EmptyとNullの扱いについて。

・Oracleは、EmptyとNullを曖昧に判断する。

・SQLServerは、EmptyとNullを明確に判断する。

これを、意識しないとハマる事がある。。

つまり、

 Oracleでは↓の様に書けば曖昧に判断してくれるが、

  SELECT * FROM table WHERE field=”

 SQLServerだと、↓の様に書かないと違う結果になる事がある。

  SELECT * FROM table WHERE field=” OR field is null

どっちが良いとも思わないが、昔ハマった。。

最近だと、だったらSQLServer側で、

fieldの初期値をEmptyにすれば

どちらも↓の書き方で良いではないかと思ったのだが。。

  SELECT * FROM table WHERE field=”

外部キーによる参照整合性制約を使っているため、

null値を設定出来ないと困る事が発覚。。

↓の書き方しかないのかなぁと、思うこの頃。

  SELECT * FROM table WHERE field=” OR field is null

≪ ≪ エスケープ処理 ORACLE、SQLServerの相違点というか。。 ≫ ≫

関連記事

Google Ads

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>