@zanyato11111

Почему нет таблицы при подключении к базе Oracle?

Создавал таблицу под пользователем aleq, называется таблица: serv.
Если зайти под этим пользователем через SQL Plus, то легко могу вытащить данные с нее.
Но если подключаюсь под этим пользователем через phyton, то таблицу уже не находит. Ее даже нет в списке all_tables (если подключаться через pthon).
В чем может быть проблема? Права на select, insert, update вроде как дал пользователю (логинился через SQL Plus под system).
При подключении через python под пользователем system, также нет этой таблицы. Найти могу ее только через встроенную в Oracle, SQL Plus.

Само сообщение: ORA-00942: таблица или представление пользователя не существует

В чем может быть проблема? Пробовал обращаться и через контейнер так: aleq.serv, но все равно нет, а в SQL Plus есть.

Вот код подключения к базе :
import oracledb

connection = oracledb.connect(
    user="aleq",
    password="123",
    dsn="localhost/xepdb1")

print("Successfully connected to Oracle Database")

cursor = connection.cursor()

for row in cursor.execute("SELECT * FROM serv"):
    print(row)
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 2
Viji
@Viji
Associate DevOps Engineer
в PostgreSQL была похожая проблема, оказалось, что подключался к базе по умолчанию postgres, а не к своей базе. Проверь, может таже фигня с Oracle. До вывода таблицы, выведи название текущей базы и сравни
Ответ написан
Комментировать
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
>Если зайти под этим пользователем через SQL Plus

Как заходите? Предположу, что вы соединяесь с рутовым контейнером, а не с pdb, и в нем создаете таблицу. А через python подключетесь в pdb, где таблицы ожидаемо нет.

Попробуйте после подключения через sql*plus сделать altet session set container=xepdb1; (или как точно ваша pdb называется), после этого попробуйте уже создать таблицу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы