2016-06-09 5 views
0

Ich habe ein seltsames Problem mit der Abfrage von Zeichenfolgen mit Oracle 11g Backend für SQLAlchemy. Erstens Klassendefinition (für Oracle, für Postgres ist es das gleiche minus Sequence):Filterung für leere Zeichenfolge in SQLAlchemy + Oracle

class Item(Base): 
    __tablename__ = 'item' 
    id = Column(Integer, Sequence('id_seq'), primary_key=True) 
    ... 
    review = Column(Unicode(2000), index=True) 

Grund anfragende funktioniert ohne Probleme mit Postgres-Backend:

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

jedoch mit Oracle 11g:

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

Filterung durch leeres Unicode-String funktioniert auch nicht in Oracle:

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

Warum etwas so Grundlegendes nicht mit Oracle funktioniert? Und wie kann ich das beheben?

Antwort

Verwandte Themen