2 つの異なるデータベースで同じクエリを実行するコードがあります。
SELECT
P.MYID,
CASE WHEN
SUBSTR(P.MYID, 1, 1) NOT IN ('W') THEN
'YOUR_ID_IS_NOT_START_WITH_W'
ELSE
(SELECT OTHER_ID FROM PERSON WHERE NUMBER = '2554' )
END AS "ALTERNATE_ID"
FROM
PERS_INFO P
WHERE
P.NUMBER = '2554'
この例の OTHER_ID は、2 番目のデータベースにのみ存在する列です。IDが「W」で始まらない場合、クエリは最初のデータベースでのみ実行されるため、これはまったく問題ありません。つまり、このクエリは、MYID が 'W' で始まらない場合は最初のデータベースでのみ実行され、MYID が 'W' で始まる場合は 2 番目のデータベースでのみ実行されます。
したがって、クエリは両方のデータベースで機能しますが、最初のデータベースでは ORA-00904 でクエリが失敗します。これは、最初のデータベースでは OTHER_ID が有効ではないためです (これは本当ですが、私は気にしません)。とにかくオラクルにクエリを実行させるか、これを回避するにはどうすればよいですか?