タグ

2014年4月14日のブックマーク (1件)

  • PostgreSQLとOracleの仕様の相異

    oracle_fdwでは、WHERE句に指定した条件のうち、評価結果がPostgreSQLOracleで同じになるものをOracleに発行するクエリに含めます。 しかし、PostgreSQLOracleの仕様の相異のため、Oracleに発行するWHERE句の条件の中にも、ある限られた条件の下では、PostgreSQLOracleで異なる結果を返す場合があります。 このため、そのような条件がOracle側で評価されると、意図しないSELECT結果となったりエラー終了する場合があります。 この問題は、SELECT文のCTEを使用して回避できます。 評価結果がPostgreSQLOracleで同じとなる条件はWITH句の副問い合わせに指定し、異なる可能性のある条件は主問い合わせのWHERE句に指定してください。 以下にCTEを使用したSELECT文の例を示します。 postgres=#

    chronyo
    chronyo 2014/04/14
    めっちゃいい記事発見した。OracleだとNullと空文字区別しないけど、PostgreSQLだとしっかり区別するってことしか知らなかったなー。