【发布时间】:2020-04-03 01:46:53
【问题描述】:
在建立连接后,我试图从 oracle 云在自治数据库上运行任何命令,但它们似乎不起作用。
cursor.execute("select * from admin.customers")
给我以下错误
Traceback (most recent call last):
File "D:\WORK\PING\OCP\dbConnect.py", line 49, in <module>
cursor.execute("select * from admin.customers")
cx_Oracle.DatabaseError: ORA-00942: table or view does not exist
我不明白这个错误来自哪里,因为我可以在浏览器 sql developerper 中运行相同的命令并且它可以工作,也无法在线找到任何真正的解决方案
问题可能来自我没有使用正确的架构,但我实际上是用这个改变了它:
connection.current_schema = "ADMIN"
提前感谢任何线索!
(我通过 python 连接为 ADMIN)
@GMB 来自 sql dev online 我得到 2 行 1 - SH; 2 - 管理员;从 python 我得到 [('SH',)]
@安东尼图宁加
connection = cx_Oracle.connect("admin", "password", "db201912040828_medium")
我正在使用 db 钱包
【问题讨论】:
-
这个查询返回什么:
select table_schema from all_tables where table_name = 'CUSTOMERS'? -
对不起,请写:
select owner from all_tables where table_name = 'CUSTOMERS' -
connection.current_schema = "ADMIN"不会改变您连接到数据库的身份。也许您连接的用户无权访问该表?我希望您在 SQLDeveloper 和 cx_Oracle 中以不同用户的身份连接到数据库。 -
虽然我完全理解您的观点,但我无法真正理解如何更改它,因为我的数据库中只有一个用户,而且我确信我在两者上都使用了相同的凭据。
connection.current_schema = "ADMIN"我知道这只会改变连接的架构,这会给某人带来麻烦,所以我添加了这个以确保我使用的是正确的。我是否有可能忘记在 oracle 云上允许远程访问或类似的东西?如果不是,我真的不明白问题出在哪里:/ -
包含 cx_Oracle.connect() 语句,隐藏密码,这样我们就可以看到您是如何连接到数据库的。
标签: python sql database cx-oracle