2012-05-02 15 views
2

Sybaseデータベースにsqlalchemy ORMマッピングがあります。私のテーブル名のいくつかはかなり長いです、と私は、次のエラーを取得しています:sqlalchemy/Sybase ASEでカラムエイリアスが長すぎます

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文字の制限

を高めます。

ありがとう

+0

これはどのバージョンのsybaseですか? docsは255がカラム、テーブル、ユーザ定義の識別子の最大長であると言っています:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sqlug/html/sqlug /sqlug12.htm – zzzeek

答えて

0

私はちょうどセクションb)について答えることができます。 sybaseでは、文字制限を大きくすることはできません。

についてa)可能かどうかわかりませんが、表の名前を変更することができますか?

+0

それでは、Sybaseでビューを作成する必要があるようです... – nickos556

+0

ええと、テーブルを変更すると(列の追加/削除)、ビューを更新する必要があるかもしれません。 – van

1

SQLAlchemyのは、通常、私たちは私たちがあたり、SYBASEデフォルトが差し込まれていないこの方言上の任意のフィードバックを得ることはありませんのSybaseの場合には、自動的に適切なラベルの長さを設定しますが、それはlabel_length経由で設定可能です:

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

恐ろしい@zzzeekビューを追加するよりもはるかに良い:) – nickos556

関連する問題