2016-06-09 151 views
0

我有一個奇怪的問題,使用Oracle 11g後端爲SQLAlchemy查詢字符串。首先,類定義(適用於Oracle,Postgres的是同樣的減Sequence):在SQLAlchemy + Oracle中過濾空字符串

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 

通過空的Unicode字符串進行篩選在Oracle中不起作用:

In [32]: len(DBSession.query(Item).filter(Item.review != u'').limit(100).all()) 
Out[32]: 0 

爲什麼這麼基本的東西不適用於Oracle?我該如何解決這個問題?

回答