database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 30895 게시물 읽기
No. 30895
서로다른 계정에 속한 데이타참조 pl/sql
작성자
jatu
작성일
2007-05-31 20:38ⓒ
2007-05-31 20:38ⓜ
조회수
3,496


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초 정도 걸립니다... 쩝

이 글에 대한 댓글이 총 2건 있습니다.

user2 에 어떤권한이 부여 되어 있는지요?


user2가 select any table 의 권한을 소유하고 있다면 조회는 가능하지만

pl/sql 이나 view 생성시 등에는 문제가 발생 하는듯 합니다.


user1이 명시적으로 user2에게 select 권한을 부여 하시면 문제가 없을 것입니다.

ㅁ님이 2007-06-01 09:51에 작성한 댓글입니다. Edit

감사합니다. 그렇게 하니까 잘되네요 몇시간을 해메던 문제인데 ㅋㅋ

황명호님이 2007-06-01 10:10에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30898오라클호환에 관하여 [1]
초보
2007-06-01
933
30897하나의 connection을 여러 응용프로그램에서 이용합니다. [2]
우히히
2007-06-01
1161
30896게시판 테이블 설계 조언 부탁!!
dotnetpower
2007-06-01
1226
30895서로다른 계정에 속한 데이타참조 pl/sql [2]
jatu
2007-05-31
3496
30894update시 order by 오류 [1]
푸롬이
2007-05-31
2095
30893left join일때 sum처리
풍뎅이
2007-05-31
1149
30892rowid 가 항상 증가하도록 만드는 세팅이 있는지요? [1]
놔이싸람
2007-05-31
1473
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다