Приложение не может получить доступ к таблице, созданной в базе данных Oracle
При извлечении данных через приложение 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. Любая помощь будет высоко оценен.
1 ответ
Решение
@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")