Приложение не может получить доступ к таблице, созданной в базе данных 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, ваше руководство помогло мне найти следующее решение:

  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")
    
Другие вопросы по тегам