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 に答える