2008-11-07 5 views
1

스키마에 테이블이 있는데, 테이블 ACTION이 있는데, ACTION이라는 동의어도 있는데 다른 스키마에 다른 테이블을 참조합니다. 이제오라클 동의어 선택

, 내가 ACTION

에서

선택 쿼리 *를 실행할 때 그것은 동의어를 테이블에서 레코드를 선택,하지만하지 않습니다.

어쨌든 나와 동의어와 테이블을 함께 선택 하시겠습니까?

고맙습니다

답변

4

글쎄, 당신의 기본 액션 테이블의 이름을 변경해야합니다,의는 LOCAL_ACTION을 가정 해 봅시다.

의이 액션 동의어가 otheruser.LOCAL_ACTION 테이블에 척하자

...

그럼 당신은 할 작업의 동의어를 다시 정의 할 수 있습니다 : 결국 그런

SELECT * from LOCAL_ACTION 
UNION 
SELECT * from otheruser.LOCAL_ACTION 

선택 *에서에게 액션 줄 것이다 당신에게 두 테이블의 결합 된 목록.

5

ACTION 동의어가 ACTION 테이블과 동일한 스키마에 있다고 생각하지 않습니다. 이는 ACTION 테이블이 Oracle에서 허용되지 않기 때문입니다. 대부분 ACTION 동의어는 다른 스키마에 있으며 아마도 PUBLIC 동의어입니다. 그런 경우에는 사용할 수

select * from ACTION 
union 
select * from public.ACTION