sqlalchemy / Sybase ASE中的列别名太长

时间:2012-05-02 09:53:39

标签: sqlalchemy sybase-ase

我在Sybase数据库上有sqlalchemy ORM映射。我的一些表名相当长,我收到以下错误:

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.

我有什么方法可以:

a)'别名'sqlalchemy中的表,以便它使用较短的列别名

b)增加30个字符的限制

我意识到我可以在数据库中创建视图但不想触摸它。

感谢

2 个答案:

答案 0 :(得分:1)

SQLAlchemy通常会自动设置相应的标签长度​​,对于Sybase,我们从未得到任何关于此方言的反馈,因此我们没有插入per-sybase默认值,但可以通过label_length进行配置:

engine = create_engine("sybase+pyodbc://...", label_length=30)

答案 1 :(得分:0)

我可以回答有关b)部分的内容。 在sybase中,您无法增加字符限制!

关于a)我不知道这是否可行,但我的消息是你改变表名!