SELECT data from another schema in oracle

cx-oracle, oracle, sql

Solution

Does the user that you are using to connect to the database (user `A` in this example) have `SELECT` access on the objects in the `PCT` schema? Assuming that `A` does not have this access, you would get the "table or view does not exist" error.

Most likely, you need your DBA to grant user `A` access to whatever tables in the `PCT` schema that you need. Something like

GRANT SELECT ON pct.pi_int
   TO a;

Once that is done, you should be able to refer to the objects in the `PCT` schema using the syntax `pct.pi_int` as you demonstrated initially in your question. The bracket syntax approach will not work.

Problem

I want to execute a query that selects data from a different schema than the one specified in the DB connection (same Oracle server, same database, different schema) I have an python app talking to an Oracle server. It opens a connection to database (server/schema) A, and executes select queries to tables inside that database. I've tried the following : ``` select .... from pct.pi_int, pct.pi_ma, pct.pi_es where ... ``` But I get: ``` ORA-00942: table or view does not exist ``` I've also tried surrounding the schema name with brackets: ``` from [PCT].pi_int, [PCT].pi_ma, [PCAT].pi_es ``` I get: ``` ORA-00903: invalid table name ``` The queries are executed using the cx_Oracle python module from inside a Django app. Can this be done or should I make a new db connection?

Original source