【发布时间】:2012-11-22 10:45:44
【问题描述】:
我想执行一个查询,该查询从与数据库连接中指定的模式不同的模式中选择数据(相同的 Oracle 服务器、相同的数据库、不同的模式)
我有一个 python 应用程序与 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 模块执行的。
可以这样做还是我应该建立一个新的数据库连接?
【问题讨论】:
-
出于好奇,在 Python 中尝试此语句之前,您是否曾在 Toad 或 SQL Developer 中尝试过?
-
在 Oracle 术语中,数据库是数据文件的集合。听起来您想从同一数据库中的不同架构中选择数据,这就是我编辑您的问题以反映的内容。 Oracle 所称的“模式”类似于许多其他 RDBMS 产品所称的“数据库”。如果你的意思是服务器上有两个数据库,并且你想连接到数据库 A 并查询数据库 B 上的表,那是可能的,但是你需要在解决方案中添加一个数据库链接。
-
没错,我的意思是两个模式。
-
我使用 python shell 尝试了这个和其他查询,并且所有其他查询都有效。
-
[和]是 (ANSI) SQL 标识符的无效字符。