• 締切済み

空文字の扱いについて

Oracle⇒postgresqlへ移行を行っています。 Oracleでは [カラム名] IS NULL で空文字のデータとNULLのデータを取得できましたが、postgresqlではNULLのデータのみしか取得することができません。 一応 [カラム名] IS NULL OR [カラム名] = '' で、取得できるのですが、修正量、パフォーマンスの問題から、異なった方法を探しています。何か良い方法はありますでしょうか。 宜しくお願いします。 ---以下環境--- RedHat 3 postgresql 8.1 PHP 4.3.11 adodb pear

みんなの回答

  • nino2
  • ベストアンサー率88% (8/9)
回答No.1

NULL と 空文字はPostgresqlでは扱い方が異なったと思います。 たとえば、count 関数は NULL だとカウントしませんが 空文字だとカウントします。 このあたりを調べた上で、どのように扱うべきか考えるほうがよいか。

noname#18413
質問者

補足

ご回答ありがとうございます。 おっしゃるとおり、oracle以外のDBでは空文字とNULLは違うものとして扱われています。 また、現時点で調べた結果、adodbの「ADODB_FORCE_TYPE」に「ADODB_FORCE_NULL」を設定することで、空文字をNULLに自動変換してくれるものがあるのですが、私の環境ではコードの都合上うまく使うことができませんでした。

関連するQ&A