2016-06-09 3 views
0

SQLAlchemy 용 Oracle 11g 백엔드를 사용하여 문자열을 쿼리하는 데 이상한 문제점이 있습니다. 첫째, 클래스 정의 (Oracle 용, 포스트 그레스 위해이 같은 마이너스 Sequence입니다) : 오라클 11g와 함께,SQLAlchemy + Oracle에서 빈 문자열 필터링

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

그러나 :

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

기본 쿼리는 Postgres를 백엔드에 문제없이 작동

빈 유니 코드 문자열로
In [31]: len(DBSession.query(Item).filter(Item.review != '').limit(100).all()) 
Out[31]: 0 

필터링은 오라클에서 하나가 작동하지 않습니다

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

오라클에서 그렇게 기본적인 것이 작동하지 않는 이유는 무엇입니까? 어떻게 해결할 수 있습니까?

답변

관련 문제