首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLAlchemy + Oracle中空字符串的筛选

SQLAlchemy + Oracle中空字符串的筛选
EN

Stack Overflow用户
提问于 2016-06-09 15:19:20
回答 1查看 1.6K关注 0票数 0

我在使用SQLAlchemy的Oracle11g后端查询字符串时遇到了一个奇怪的问题。首先,类定义(对于Oracle,Postgres是相同的减号Sequence):

代码语言:javascript
复制
class Item(Base):
    __tablename__ = 'item'
    id = Column(Integer, Sequence('id_seq'), primary_key=True)
    ...
    review = Column(Unicode(2000), index=True)

基本查询没有Postgres后端的问题:

代码语言:javascript
复制
In [1]: len(DBSession.query(Item).filter(Item.review != '').limit(100).all())
Out[1]: 100

但是,在Oracle 11g中:

代码语言:javascript
复制
In [31]: len(DBSession.query(Item).filter(Item.review != '').limit(100).all())
Out[31]: 0

在Oracle中,由空Unicode字符串进行的筛选也不起作用:

代码语言:javascript
复制
In [32]: len(DBSession.query(Item).filter(Item.review != u'').limit(100).all())
Out[32]: 0

为什么这么基本的东西不适用于Oracle?我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-09 19:27:05

这与SQLAlchemy无关。Oracle处理空字符串==空值。

请参阅:Oracle treats an empty string as null

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37730030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档