Приложение не может получить доступ к таблице, созданной в базе данных Oracle - PullRequest
0 голосов
/ 28 апреля 2018

При извлечении данных из приложения на 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 Ответ

0 голосов
/ 28 апреля 2018

@ 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")
    
...