On Wed, Apr 17, 2013 at 2:38 AM, Evan Jon <evanjon....@gmail.com> wrote:
> Hello all,
>
> I want to map a table whose name is BAND_ORDER_OF_LOCAL_TESTING.
>
> class BandOrderOfLocalTesting(Base):
>     __TABLENAME__ = 'BAND_ORDER_OF_LOCAL_TESTING'
>     order_id = Column("order_id", Number(18), primary_key=True)
>     ...


I assume the above is a typo - you need to be setting __tablename__,
not __TABLENAME__.


>
> Each time I got the following message:
> 013-04-17 09:26:55,857 INFO sqlalchemy.engine.base.Engine {'ROWNUM_1': 1}
> Traceback (most recent call last):
>   File "tables.py", line 108, in <module>
>     instance = session.query(BandOrderOfMonth).first()
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/orm/query.py",
> line 2181, in first
>     ret = list(self[0:1])
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/orm/query.py",
> line 2048, in __getitem__
>     return list(res)
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/orm/loading.py",
> line 72, in instances
>     rows = [process[0](row, None) for row in fetch]
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/orm/loading.py",
> line 356, in _instance
>     tuple([row[column] for column in pk_cols])
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/engine/result.py",
> line 71, in __getitem__
>     processor, obj, index = self._parent._key_fallback(key)
>   File
> "/usr/lib/python2.7/site-packages/SQLAlchemy-0.8.1dev-py2.7.egg/sqlalchemy/engine/result.py",
> line 314, in _key_fallback
>     expression._string_or_unprintable(key))
> sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column
> 'BAND_ORDER_OF_LOCAL_TESTING.order_id'"
>
> Is there a limit of table name in sqlalchemy?
> How to solve this problem?
>
> Best regards,
> Evan
>

The class that you are querying here (BandOrderOfMonth) doesn't match
the class that you mentioned above, so it's difficult to know what is
going on. A full running example would make it easier to understand.

What database system are you working with? Different databases have
different rules about case sensitivity. From an SQL prompt, does
"SELECT * from band_order_of_local_testing" work, or give an error?

In general, SQLAlchemy assumes that if you specify a table name with
any upper-case characters, then the table name is case-sensitive and
so it will be quoted in any queries. If you specify the table name in
all lower-case, it is assumed to be case-insensitive:

  http://docs.sqlalchemy.org/en/rel_0_8/core/schema.html#sqlalchemy.schema.Table

I suggest you try specifying the table name in lower-case and see if it works.

Hope that helps,

Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to