获取使用SQLAlchemy 0.7.8和Oracle XE生成的“错误”类型

获取使用SQLAlchemy 0.7.8和Oracle XE生成的“错误”类型,第1张

概述任何人都可以告诉我为什么下面的DateTime类型创建一个“DATE”对象而不是DateTime(或更恰当地,TIMESTAMP类型),因为我必须强制类型如下面的行: #!/bin/pythonimport sqlalchemyfrom sqlalchemy import Column, Integer, String, DateTime, Index, MetaDatafrom sql 任何人都可以告诉我为什么下面的DateTime类型创建一个“DATE”对象而不是DateTime(或更恰当地,TIMESTAMP类型),因为我必须强制类型如下面的行:

#!/bin/pythonimport sqlalchemyfrom sqlalchemy import Column,Integer,String,DateTime,Index,MetaDatafrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import relationshipfrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.dialects import oracleBase = declarative_base()import logginglogging.basicConfig()logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)class TypeTest(Base):    __tablename__ = "TYPETESTZ"    thisisinteger = Column(Integer,primary_key = True)    thisisnotadatetime = Column(DateTime)    thisisdatetime = Column(oracle.TIMESTAMP)    if __name__ == "__main__":    engine = sqlalchemy.create_engine('oracle://richard:password@xe')    Metadata = Base.Metadata    Metadata.create_all(engine)

日志输出:

INFO:sqlalchemy.engine.base.Engine:SELECT USER FROM DUALINFO:sqlalchemy.engine.base.Engine:{}INFO:sqlalchemy.engine.base.Engine:SELECT table_name FROM all_tables WHERE table_name = :name AND owner = :schema_nameINFO:sqlalchemy.engine.base.Engine:{'name': u'TYPETESTZ','schema_name': u'RICHARD'}INFO:sqlalchemy.engine.base.Engine:CREATE table "TYPETESTZ" (    thisisinteger INTEGER NOT NulL,thisisnotadatetime DATE,thisisdatetime TIMESTAMP,PRIMARY KEY (thisisinteger))INFO:sqlalchemy.engine.base.Engine:{}INFO:sqlalchemy.engine.base.Engine:COMMIT
解决方法 Oracle没有DateTime数据类型.在Oracle中,日期包含一天(即2012年8月21日)和时间(即下午1:30),粒度为1秒.没有其他限定符的时间戳只允许您将粒度增加到纳秒(10 ^ -9秒). sqlAlchemy将DateTime转换为Oracle Date似乎是合理的,除非有一些要求DateTime支持小数秒(在这种情况下你需要一个时间戳)或时区(在这种情况下你需要一个带有[local]的时间戳)时区). 总结

以上是内存溢出为你收集整理的获取使用SQLAlchemy 0.7.8和Oracle XE生成的“错误”类型全部内容,希望文章能够帮你解决获取使用SQLAlchemy 0.7.8和Oracle XE生成的“错误”类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1161834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存