Псевдоним столбца слишком длинный в sqlalchemy/Sybase ASE

У меня есть сопоставления ORM sqlalchemy с базой данных Sybase. Некоторые из моих имен таблиц довольно длинные, и я получаю следующую ошибку:

DBAPIError: (Error) ('HY000', "[HY000] [DataDirect][ODBC Sybase Wire Protocol driver]
[SQL Server]The column heading that starts with 'RISK_AGGREGATION_GROUP_id_risk_agg' is 
too long. Maximum length is 30.

Могу ли я как-нибудь:

а) "псевдоним" таблицы внутри sqlalchemy, чтобы она использовала более короткие псевдонимы столбцов

б) увеличить ограничение на 30 символов

Я понимаю, что могу создать представление внутри базы данных, но не буду его трогать.

Благодарность


person nickos556    schedule 02.05.2012    source источник
comment
какая версия sybase? документы говорят, что 255 — это максимальная длина для столбцов, таблиц, определяемых пользователем идентификаторов: infocenter.sybase.com/help/index.jsp?topic=/   -  person zzzeek    schedule 06.05.2012


Ответы (2)


SQLAlchemy обычно устанавливает соответствующую длину метки автоматически, в случае с Sybase мы никогда не получаем никаких отзывов об этом диалекте, поэтому у нас нет подключенного значения по умолчанию для каждой sybase, но его можно настроить с помощью label_length:

engine = create_engine("sybase+pyodbc://...", label_length=30)
person zzzeek    schedule 06.05.2012

Я просто могу ответить по поводу раздела б). В sybase нельзя увеличить лимит символов!

Что касается а) я не знаю, возможно ли это, но я предлагаю вам изменить имена таблиц!

person aF.    schedule 02.05.2012
comment
да, и если вы меняете таблицы (добавляете/удаляете столбцы), вам может потребоваться обновить эти представления - person van; 03.05.2012