2017-11-14 2 views
0

"WHERE EXISTS()"절이있는 쿼리가 있습니다. SQL Developer에서 실행하면 행이 반환되지만 SQL Plus에서 실행하면 그렇지 않습니다.Oracle Where where 절이 SQL Plus에서 작동하지 않습니다.

왜 이런 일이 발생했는지 실마리가 있습니까? 미리 감사드립니다. Joao

+2

쿼리는 무엇이며 테이블의 설명과 샘플 데이터를 갖는 데 도움이됩니다. – Juan

+6

다른 어떤 것보다 먼저, SQL Developer – Juan

+0

에서 보류중인 Commint가 없는지 확인하십시오. 99 %의 경우에 한 도구가 다른 데이터베이스 (또는 사용자)에 연결되어 있다는 것이 밝혀졌습니다. –

답변

0

쿼리가 SQL Developer에서 생성 된 한 데이터베이스 세션에 행을 반환하고 다른 행 (예 : SQL Plus에서 생성)을 반환하지 않으면 이러한 세션이 다르다는 것을 의미합니다 .

의 차이는있을 수 있습니다 :

  • 연결된 사용자
  • 현재 스키마
  • NLS를 연결 데이터베이스는
  • FGAC 정책
  • 등등 ...
를 초기 설정

Juan이 언급했듯이 커밋되지 않은 데이터도이 문제에 영향을 미칠 수 있습니다.

SQL Developer에서 일부 행을 보면이 행을 SQL Plus에 액세스 할 수 있는지 확인합니다 (select * from table where id = <id visible in SQL Developer>과 같은 것을 사용하십시오). 이렇게하면 일부 행이 반환됩니다. SQL Plus에서 쿼리로 필터링 된 이유를 확인하십시오. 이 함수가 행을 반환하지 않으면 다른 데이터 소스에 연결하거나 데이터에 액세스 할 수 없는지 확인하십시오.

+0

도움을 주셔서 감사합니다. 그것은 사용 된 schemas.The 세션에서 SQL 개발자가 하나의 스키마를 사용하고 sqlplus에 연결이 다른 일을하고 있었다. - .- ' –

관련 문제