プロが教える店舗&オフィスのセキュリティ対策術

データベースはDB2です。
UNOINを使用したSELECT文の結果が複数のデータベースで異なります。
あるデータベースからはレコードは戻らず、もう一方のデータベースからは意図した結果が返ります。

SELECT文1
UNION
SELECT文2
のようなSQLです。
SELECT文2の方は結果レコード数は0ですが、SELECT文1の方は結果が返ります。
UNIONは、どちらかのSELECT文に結果が存在すれば、結果が返るはずなんですが・・・。

結果が返らないデータベースと結果が返るデータベースのバージョンは違うそうで、
結果が返らないデータベースにはDB2のパッチが当たっていないとか。
DB2のバグなんでしょうか?
インターネットで調べたんですが、それらしき問題は見つかりませんでした。

A 回答 (3件)

その異常終了は大いに因果関係があると思います。

エラーログから原因を判断する必要があります。
サポート契約がないのであれば以下のURLを調査するしかないと思います。

http://www-6.ibm.com/jp/software/data/developer/ …

参考URL:http://www-6.ibm.com/jp/software/data/developer/ …
    • good
    • 0
この回答へのお礼

調べたいんですが、サーバがお客さん所有で、派遣社員の私には調べる権限がありません。

回答ありがとうございました。

お礼日時:2005/04/23 00:59

No.1です。

障害関係の情報を検索してみましたが、この現象はありませんでした。
質問されている内容からは、このような結果になるのは有り得ないと思います。
もしサポート契約とかがベンダーとあれば、詳しいデータを取得して、調査依頼を出してはどうでしょうか。

この回答への補足

今日もテスト中に発生しました。
関係あるかどうかはわかりませんが、問題のデータベースはよく異常終了します。といってもここ数日間ですが。
今日も問題のSQLを再実行して結果がレコード数0を確認した後、UNION部分からSELECT文2を外して実行したところ、異常終了しました。
データベースが壊れたりしていないかが気になります。
まあ、データベースが壊れたら、他のSQLも上手くいかないとは思いますが。

補足日時:2005/04/20 00:57
    • good
    • 0

質問の内容を考えるためには、もう少し詳しい情報が必要です。


1.その複数のデータベースといっているのは内容がまったく同じなのか違うのか? まったく同じデータの内容でSQL文が同じであれば同じ結果になるはずです。
2.結果が返らないデータベースでは、SELECT文1を単独で実行した場合に何行かの結果が返るが、UNIONを指定した場合には返らないのであればあきらかに問題があるようです。
3.それぞれのDB2データベースのVersionは何ですか? CONNECT TO を行ったときにVersionナンバーが表示されると思いますが。

この回答への補足

相談にのってくださり、ありがとうございます。

1.問題となっているSQLはトランザクションデータを抽出するものです。
マスタテーブル、トランザクションテーブルとも同じデータです。

2.それぞれのデータベースで、SELECT文1を単独実行した場合は、同じ結果が返ります。
SELECT文2も同じ結果になりますが、結果はレコード数0です。

3.正確なバージョンは今すぐはわかりませんが、結果が返らない方と返る方との違いは、
a.b.xxxxの部分のxxxxだけが違ったような気がします。

補足日時:2005/04/17 23:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!