cx_Oracle.DatabaseError:ORA-00942:表或视图不存在

Ank*_*ain 2 python oracle oracle11g

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

输出为:

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
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何解决这个错误?

wol*_*lφi 5

我敢打赌这是一个架构名称问题。您以用户身份连接SYSTEM,但希望从一个称为的表中进行选择,而该表SUPPLIER很可能不在架构中SYSTEM

您可以通过在Apex SQL研讨会中运行来找出表的位置:

SELECT owner FROM all_tables WHERE table_name = 'SUPPLIERS';
Run Code Online (Sandbox Code Playgroud)

您需要将所有者放在桌子前面。例如,如果最后一个查询返回“ MYUSER”,则需要将查询更改为

cur.execute(" SELECT * FROM MYUSER.SUPPLIER")
Run Code Online (Sandbox Code Playgroud)