2012-02-24 3 views
0

테이블에서 액세스하려고하면 "테이블 또는 뷰가 존재하지 않습니다."라는 오류가 나타납니다. PHP를 통해 OCI 드라이버와 함께 PDO를 사용하고 있습니다. 필자는 PHP를 통해 오라클을 사용하는 데 도움이되는 힘든 시간을 보냈습니다. 내가 select * from entriedLevels을하려고하면PHP에서 oracle을 통해 "테이블 또는 뷰가 존재하지 않습니다"

$dbh = new PDO("oci:dbname=listst", DB_USER, DB_PASS); 

나는 다시 아무 것도 얻을 수 없다 (entriedLevels이 존재하더라도 사용자는 선택 액세스 할 수 있습니다).

내가 시도 할 때 select OBJECT_NAME from user_objects where object_type = 'TABLE' 나는 아무것도 얻지 않는다.

내가 select TABLE_NAME from all_tables을 시도하면 마침내 모든 테이블을 볼 수 있습니다.

나는 지긋 지긋한 글쓰기에 사과한다. 금요일에 긴 하루가 끝난다.

+0

이 테이블은 사용자 스키마에 있습니까? 그렇지 않으면'user_objects'에서 선택할 때 – Dan

+1

쿼리에서 전체 schema.tablename을 사용하려고 시도하면 반환되지 않습니다. 데이터베이스에 연결하는 모든 테이블에서 Table_name을 선택할 수 있습니다. 내 생각 엔 연결 문자열이 데이터베이스를 지정하지 않거나 뭔가가 길을 따라 길을 잃어 버렸기 때문에 db 연결이 어떤 스키마에 액세스 할 지 모르기 때문입니다. – Brian

+0

당신이 제공 한 한 대답과 마찬가지로 정확합니다. 나는 이것을 보았던 누군가가 "Oh man, what a n00b"라고 생각했다고 확신한다. 글쎄, 나는 오라클에 새로운 브랜드이고 최악의 경우 SQL에 익숙하지 않기 때문에 오류 메시지가 조금 이상하다는 사실과 함께 올바르게 수행하고 있다고 생각한다. 키가 "보기가 존재하지 않음"을 인식하고보기를 실현한다고 가정하면 현재 사용자와 관련된 현재 관점을 의미하고 Google 관점 또는보기 및 오라클을 찾아 스키마를 찾은 다음 너는 무슨 일이 일어나고 있는지 행복하게 생각한다. 전화 걸기, 산책하기 ... –

답변

4

두 대안은 마음에 와서 :

  • 그것에서의 스키마의 소유자와 테이블 이름을 자격 :

선택 * OWNER.entriedLevels에서

  • 테이블에 대한 공용 동의어를 만듭니다.

CREATE PUBLIC SYNONYM entriedLevels FOR OWNER.entriedLeveles;

관련 문제