Форум сайта python.su
Добрый вечер!
Сегодня столкнулась с такой проблемой - пытаюсь удалить таблицы на сервере Терадаты (drop table) используя питон. При этом возвращается ошибка “Only a commit work or null statment is legal after DDL statment”. С такой же ошибкой сталкиваешься на терадате, когда в процедуре забываешь поставить Commit work после выполнения команды.
Пробовала закинуть commit work в запрос в питоне после каждой команды drop table, но не сработало - та же ошибка, почему-то. Пробовала изменить session mod c ansi на teradata, тоже не помогло (возникла другая ошибка). Если запустить сам запрос в терадате с коммитами, получим, естественно, ошибку, что нет открытых транзакций.
Так в чем может быть проблема и как ее исправить?
Скрипт выглядит следующим образом:
conn = pyodbc.connect(“DSN= Teradata”)
cur = conn.cursor()
sql = ‘drop table ’table1'; drop table ‘table2’;''
cur.execute(sql)
У меня стоит питон 3.7, windows 7
Отредактировано Lise (Сен. 2, 2019 21:55:11)
Офлайн
Какая команда по имени sql записана в строке?
Отредактировано py.user.next (Сен. 3, 2019 05:35:38)
Офлайн
py.user.nextDROP TABLE ‘table1’; DROP TABLE ‘table2’;
Какая команда по имени sql записана в строке?
Офлайн
Попробуй другую команду дать и не две команды, а одну. Убедись, что скрипт вообще работает на гаратированно разрешённой команде для данного пользователя БД.
Офлайн
Вот и я не совсем понял , к чему вообще был этот вопрос )
Офлайн