我在使用SQLAlchemy的Oracle11g后端查询字符串时遇到了一个奇怪的问题。首先,类定义(对于Oracle,Postgres是相同的减号Sequence):
class Item(Base):
__tablename__ = 'item'
id = Column(Integer, Sequence('id_seq'), primary_key=True)
...
review = Column(Unicode(2000), index=True)基本查询没有Postgres后端的问题:
In [1]: len(DBSession.query(Item).filter(Item.review != '').limit(100).all())
Out[1]: 100但是,在Oracle 11g中:
In [31]: len(DBSession.query(Item).filter(Item.review != '').limit(100).all())
Out[31]: 0在Oracle中,由空Unicode字符串进行的筛选也不起作用:
In [32]: len(DBSession.query(Item).filter(Item.review != u'').limit(100).all())
Out[32]: 0为什么这么基本的东西不适用于Oracle?我怎么才能解决这个问题?
发布于 2016-06-09 19:27:05
这与SQLAlchemy无关。Oracle处理空字符串==空值。
https://stackoverflow.com/questions/37730030
复制相似问题