我正在尝试使用python脚本访问Oracle数据库表。 我写了以下代码:
import cx_Oracle
con = cx_Oracle.connect("system/infy123@127.0.0.1/XE")
cur = con.cursor()
cur.execute(" SELECT * FROM SUPPLIER")
for row in cursor.fetchall():
print(row)
,输出为:
Traceback (most recent call last):
File "C:/Users/ADMIN/AppData/Local/Programs/Python/Python36-
32/my_file.py", line 6, in <module>
cur.execute(" SELECT * FROM SUPPLIER")
cx_Oracle.DatabaseError: ORA-00942: table or view does not exist
谁能告诉我如何解决这个错误?
答案 0 :(得分:5)
我敢打赌这是一个架构名称问题。您以用户SYSTEM
身份进行连接,但希望从名为SUPPLIER
的表格中进行选择,该表格很可能不在架构SYSTEM
中。
您可以在Apex SQL研讨会中找到该表的位置:
SELECT owner FROM all_tables WHERE table_name = 'SUPPLIERS';
您需要将所有者放在桌子前面。例如,如果最后一个查询返回“MYUSER”,则需要将查询更改为
cur.execute(" SELECT * FROM MYUSER.SUPPLIER")