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