user1의 유져에
table1
있고
user2의 유져에
table1
이라는 같은 이름의 테이블이 존재 합니다.
user2로 로그인해서 user1.table1의 내용을 보고 싶으면
select * from user1.table1
이렇게 해서 결과를 얻어옵니다.
일반적인 쿼리는 저렇게 해서 얻어올수 있는데
pl/sql에서 위의 쿼리를 실행시키면 테이블을 찾을수 없다는 에러가 발생합니다.
ORA-00942 : 테이블을 찾을수 없습니다.
user2에 있는 pl/sql function 중 일부입니다
OPEN l_rc FOR
select orderno from user1.table1 where orderno='870531000164'; <-- 여기서 00942에러
loop
FETCH l_rc INTO temp_data;
그래서 문장이 틀렸나 확인해보기 위해서
select orderno from user1.table1 where orderno='870531000164'; 이내용을
select orderno from user2.table1 where orderno='870531000164';
으로 변경해서 실행시켜보았는데 이것은 잘됩니다.
pl/sql문장안에서 user1.table1 이런형식을 사용할수 없는것인가요?
이것의 대안으로
select orderno from table1@user1 where orderno='870531000164';
이렇게 디비링크 형식으로 바꿔서 해봤는데요 디비링크는 다른 테이블의 내용을 참조할때 먼가문제가 있는지
위와 같은 아주 간단한 쿼리도 3-5초 정도 걸립니다... 쩝
|