应用程序无法访问在 Oracle 数据库中创建的 table
Application unable to access table created in oracle database
通过 python 应用程序从 table 获取数据会抛出此错误:
cx_Oracle.DatabaseError: ORA-00942: table 或视图不存在。我已经验证了架构和 table 名称。
cur = cursor.execute('SELECT * FROM SYS.STUDENT_RECORDS')
但是,应用程序从系统中获取数据table。
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 没有太多经验。任何帮助将不胜感激。
@kaushik @krokodilko,您的指导帮助我得出以下解决方案:
- 创建了新用户并授予了权限。
更改了连接字符串以使用服务名称而不是 SID。(不知道为什么 SID 不起作用)
dsn_tns = cx_Oracle.makedsn(ip, port, service_name=service_name)
cur = cursor.execute("SELECT * FROM user1.STUDENT_PROFILES WHERE ROWNUM <= 10")
通过 python 应用程序从 table 获取数据会抛出此错误: cx_Oracle.DatabaseError: ORA-00942: table 或视图不存在。我已经验证了架构和 table 名称。
cur = cursor.execute('SELECT * FROM SYS.STUDENT_RECORDS')
但是,应用程序从系统中获取数据table。
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 没有太多经验。任何帮助将不胜感激。
@kaushik @krokodilko,您的指导帮助我得出以下解决方案:
- 创建了新用户并授予了权限。
更改了连接字符串以使用服务名称而不是 SID。(不知道为什么 SID 不起作用)
dsn_tns = cx_Oracle.makedsn(ip, port, service_name=service_name)
cur = cursor.execute("SELECT * FROM user1.STUDENT_PROFILES WHERE ROWNUM <= 10")