오라클의 다른 스키마에서 데이터 선택
DB 연결에 지정된 것과 다른 스키마(같은 Oracle 서버, 같은 데이터베이스, 다른 스키마)에서 데이터를 선택하는 쿼리를 실행하려고 합니다.
오라클 서버와 대화하는 파이썬 앱이 있습니다.데이터베이스(서버/스키마) A에 대한 연결을 열고 해당 데이터베이스 내의 테이블에 대한 선택 쿼리를 실행합니다.
다음을 시도해 보았습니다.
select ....
from pct.pi_int, pct.pi_ma, pct.pi_es
where ...
하지만 난 이해해요.
ORA-00942: table or view does not exist
스키마 이름을 괄호로 둘러싸기도 했습니다.
from [PCT].pi_int, [PCT].pi_ma, [PCAT].pi_es
이해합니다.
ORA-00903: invalid table name
쿼리는 Django 앱 내부에서 cx_Oracle python 모듈을 사용하여 실행됩니다.
이것을 할 수 있습니까 아니면 제가 새로운 db 연결을 해야 합니까?
데이터베이스에 연결하는 데 사용하는 사용자(사용자)A
이 예에서는)가 있습니다.SELECT
의 개체에 대한 액세스PCT
스키마?라고 가정하면A
이 액세스 권한이 없습니다. "table or view is not exist" 오류가 발생합니다.
대부분 사용자에게 권한을 부여하려면 DBA가 필요합니다.A
모든 테이블에 대한 액세스PCT
필요한 스키마.비슷한 것
GRANT SELECT ON pct.pi_int
TO a;
이 작업이 완료되면 다음 항목의 개체를 참조할 수 있습니다.PCT
구문을 사용한 스키마pct.pi_int
당신이 질문에서 처음에 보여준 것처럼.괄호 구문 접근 방식이 작동하지 않습니다.
보조금 외에도 동의어를 만들어 볼 수 있습니다.테이블 소유자 스키마를 매번 지정할 필요가 없습니다.
연결 스키마에서:
CREATE SYNONYM pi_int FOR pct.pi_int;
그런 다음 쿼리할 수 있습니다.pi_int
다음과 같이:
SELECT * FROM pi_int;
데이터베이스에 연결하는 데 사용하는 스키마/계정에 따라 데이터베이스에 연결하는 데 사용하는 계정에 대한 허가가 누락된 것 같습니다.
데이터베이스에서 PCT 계정으로 연결한 다음 사용 중인 계정에 테이블에 대한 선택 권한을 부여합니다.
grant select on pi_int to Account_used_to_connect
언급URL : https://stackoverflow.com/questions/13709164/select-data-from-another-schema-in-oracle
'your programing' 카테고리의 다른 글
VBA(Excel)에서 Bash 스크립트를 호출하는 방법 (0) | 2023.08.30 |
---|---|
jQuery: 양식 제출 시 어떤 버튼을 클릭했는지 확인하는 방법은 무엇입니까? (0) | 2023.08.30 |
Python의 파일에서 문자 읽기 (0) | 2023.08.30 |
pkg-config 검색 경로에서 패키지 카이로를 찾을 수 없습니다.노드 j.s 설치 캔버스 문제 (0) | 2023.08.10 |
열 nvarchar 길이를 드롭 없이 변경하는 방법 (0) | 2023.08.10 |