4

Googleでよく検索しましたが、私の場合、このエラーに対する答えが見つからないようです。

私は結合を行っていません。文字通り、このテーブルからすべてを取得しようとしています。

他のすべてのクエリは正常に機能しますが、これは次のエラーで台無しになっているようです:

InvalidRequestError: Ambiguous column name 'INMPTL_WIW_BATAM_STG.pers_no' in result set! try 'use_labels' option on select statement.

モデル:

    batamStg = sa.Table("INMPTL_WIW_BATAM_STG", meta.metadata, 
    sa.Column("PERS_NO", sa.types.String(),primary_key=True),
    sa.Column("FIRST_NAME", sa.types.String()),
    sa.Column("LAST_NAME", sa.types.String()),
    sa.Column("KNOWN_AS", sa.types.String()),
    sa.Column("JOB_TITLE", sa.types.String()),
    sa.Column("MANAGER_NAME", sa.types.String()),
    sa.Column("MANAGER_ID", sa.types.String()),
    sa.Column("MANAGER_COST", sa.types.String()),
    autoload=True,
    autoload_with=engine)

意見:

btm = meta.Session.query(model.BatamStaging).all();

ここには Pers_no という名前の列が 1 つだけあり、主キーはすべて一意です。

LAST_NAME を主キーとして設定しようとすると、同じエラーが発生します。

他の誰かがこの問題を抱えていますか?

4

1 に答える 1

4

私の推測では、を使用して反映される列をオーバーライドするときの列名の大文字と小文字autoload=Trueの区別です。確認するには、すべての列定義をコメントアウトし、そのままにしておきautoload=Trueます。次に、反対のことを行います。

詳細については、SA ドキュメントのReflecting Database Objects - Overriding Reflected Columnsを参照してください。

于 2011-11-14T14:34:53.367 に答える