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?
Does the user that you are using to connect to the database (user
Ain this example) haveSELECTaccess on the objects in thePCTschema? Assuming thatAdoes not have this access, you would get the “table or view does not exist” error.Most likely, you need your DBA to grant user
Aaccess to whatever tables in thePCTschema that you need. Something likeOnce that is done, you should be able to refer to the objects in the
PCTschema using the syntaxpct.pi_intas you demonstrated initially in your question. The bracket syntax approach will not work.