「Oracle SQL Developer」で次のSQL問合せを実行しようとしています。それぞれ異なる環境(ローカル/クライアント)にあります。Oracle Database:SQLクエリーが異なる環境で異なる動作をする
問合せ:
SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR t.STATUS = :P_STATUS);
パラメータ:
P_STATUS = -1 'Integer'
(表内のすべてのデータを表示する)
期待される結果:
テーブルのすべてのレコードは
表示は、結果:
ローカル:表内のすべてのレコードが表示されます
C lient:
1 - 問題は、次のクエリ
SELECT DISTINCT t.*
FROM myTable t
WHERE :P_STATUS = -1) ;
SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR 1=2);
2 - で発生していなかったこと、すでに昨日のクライアントでも実行が、今日それがこの奇妙なを与える:テーブル内のレコードが
は注意表示されません動作。だから私は変更された設定があると思うが、私はそれを期待することはできませんか、Googleで同様の問題を見つけることはできません。
3-特定のステータス(:P_STATUS = 2)を選択すると、クエリもうまく実行されました。
更新: テーブルから選択するとクエリが正しく実行されますが、テーブルのビューから選択するとデータは返されません。
また、Toadで正しく実行され、SQL Developerで正しく実行されません。
ステータスデータ型に問題があります。 (2)と、ビュー でテーブル番号ではなく、次のクエリでは、データは、それが、その後するローカルマシン上のセッションからINSERT
編となっているが、COMMIT
テッドされていない場合は、SQL Developerの
SELECT DISTINCT t.*
FROM myTable t
WHERE (:P_STATUS = -1 OR to_number(t.STATUS) = :P_STATUS);
クライアントとローカルの両方が同じデータベースに接続していますか?彼らは両方とも同じユーザ( 'SELECT USER FROM DUAL')とテーブルスペース(' SELECT table_name、tablespace_name FROM user_tables WHERE table_name = 'MYTABLE'')に接続していますか?あなたが 'DESCRIBE myTable;'を実行すると、どちらも同じ記述になりますか? – MT0
EBSとは? –