应用程序无法访问在oracle数据库中创建的表

时间:2018-04-28 03:39:24

标签: database oracle oracle-sqldeveloper oracledb dbaas

从表中通过python应用程序获取数据会引发我的错误: cx_Oracle.DatabaseError:ORA-00942:表或视图不存在。我已经验证了架构和表名。

cur = cursor.execute('SELECT * FROM SYS.STUDENT_RECORDS')

但是,应用程序从系统表中提取数据。

cur = cursor.execute("SELECT * FROM TAB_STATS$ WHERE ROWNUM <= 10")

这是连接字符串:

dsn_tns = cx_Oracle.makedsn(ip, port, SID)                                                                     
connection = cx_Oracle.connect(user='username', password='****',dsn=dsn_tns)

我假设它必须使用用户权限做一些事情,但不能完全正确。我对Oracle DB没有多少经验。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

@kaushik @krokodilko,您的指导帮助我找到了以下解决方案:

  1. 创建新用户并授予权限。
  2. 更改连接字符串以使用服务名称而不是SID。(不知道为什么SID不起作用)

    dsn_tns = cx_Oracle.makedsn(ip, port, service_name=service_name)
    
  3. cur = cursor.execute("SELECT * FROM user1.STUDENT_PROFILES WHERE ROWNUM <= 10")