2

我在 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 个字符的限制

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

谢谢

4

2 回答 2

1

SQLAlchemy 通常会自动设置适当的标签长度​​,在 Sybase 的情况下,我们从来没有得到任何关于这种方言的反馈,所以我们没有插入每个 sybase 的默认值,但它可以通过 label_length 进行配置:

engine = create_engine("sybase+pyodbc://...", label_length=30)
于 2012-05-06T14:55:51.493 回答
0

我只能回答b)部分。在sybase中,不能增加字数限制!

关于a)我不知道这是否可能,但我的建议是让您更改表名!

于 2012-05-02T11:59:52.490 回答