Я запрашиваю Redshift с помощью SQLAlchemy через соединение ODBC. Независимо от того, что я делаю, я получаю следующее предупреждение:
C: \ Anaconda3 \ Lib \ сайт-пакеты \ SQLAlchemy \ двигатель \ default.py: 324:
SAWarning: Исключительная ситуация при попытке обнаружить возвраты Unicode:
ProgrammingError ("(pyodbc.ProgrammingError) ('25P02', '[25P02]
[Amazon] [Amazon Redshift] (30) Произошла ошибка при попытке выполнить
запрос: [SQLState 25P02] ОШИБКА: текущая транзакция прервана,
команды игнорируются до конца блока транзакции \ n (30)
(SQLExecDirectW) ') ")" обнаруживает юникод-возврат:% r "% de)
Это не ошибка, а предупреждение. Я все еще получаю правильные результаты. Например, простые запросы вроде этого:
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://@MY_CONN")
with engine.connect() as conn:
ct = conn.execute("SELECT COUNT(1) FROM my_table").scalar()
print(ct)
Произведет правильный счет, но все равно покажет это предупреждение. Я провел некоторое исследование, которое показывает, что это может быть связано с параметрами автоматической фиксации, но когда я запускаю следующий код, я все равно получаю предупреждение, и на этот раз с неправильным результатом 0:
ct = (
conn.execute(text("SELECT COUNT(1) FROM my_table").execution_options(autocommit=True)).scalar()
)
Кроме того, я думаю, что autocommit не имеет ничего общего с запросами на чтение.
Есть какие-нибудь идеи по этому поводу?