2017-11-14 12 views
0

"WHERE EXISTS()"句を持つクエリがあります。 SQL Developerで実行すると行が返されますが、SQL Plusで実行するとSQLは実行されません。Oracle Where exists節がSQL Plusで機能しない

これがどうして起こったのか、誰かが気付いていますか? ありがとうございます。 よろしく、 ジョアン

+2

これはクエリです。また、テーブルの説明とサンプルデータを持つのに役立ちます。 – Juan

+6

他のものよりも先に、SQL Developer – Juan

+0

のコミットが保留されていないことを確認してください。そのようなケースの99%で、1つのツールが別のデータベース(またはユーザー)に接続されていることが判明しました。 –

答えて

0

クエリには、1つのデータベース・セッションにローを返した場合(たとえば、SQL Developerによって作成された)と他のでは(たとえば、SQLプラスで作成された)、それはこれらのセッションが異なっていることを意味任意の行を返しません。

差があってもよい:

  • 接続されたユーザ
  • 現在のスキーマ
  • NLSを接続されたデータベースは、
  • FGACポリシー
  • など...
を設定します

Juanが述べたように、コミットされていないデータもこれに影響する可能性があります。

SQL Developerでいくつかの行を見ると、これらの行にSQL Plusにアクセスできるかどうかを確認します(select * from table where id = <id visible in SQL Developer>などを使用してください)。これによっていくつかの行が返された場合、SQL Plusでクエリによってフィルタリングされた理由を確認してください。これによって行が返されない場合は、別のデータソースに接続しているか、データにアクセスできないかを確認してください。

+0

助けてくれてありがとう。使用されていたスキーマでした.Sql開発者のセッションでは1つのスキーマが使用されていましたが、sqlplusでの接続は別のスキーマで行われていました。 - ' - ' –

関連する問題