【发布时间】:2020-07-20 17:31:18
【问题描述】:
使用 python sqlalchemy 从 Oracle 数据库读取 - 对于在源中存储为 "varchar2" 的 "Date" 字段。
示例:Oracle“2019-12-20”中的 Test_col 格式。这在源数据库中存储为 varchar2。
仅供参考:在 python 中将“varchar2 转换为日期”:
var_1: datetime.strptime('2019-12-20','%Y-%m-%d').date()
将 var_1 传递给下面的 sql,最终如下所示:
select *
FROM stg_test_table
WHERE to_date(Test_col,'YYYY-MM-DD') = '2019-12-20'
如果我从 Oracle 开发人员运行但从 Python 代码运行相同,则运行良好,会出现以下错误:
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError)
ORA-01861: literal does not match format string
尝试了多个日期组合,但从 Python 运行时似乎没有一个有效。
这可以链接到 cx_oracle 版本问题吗?
【问题讨论】:
-
你有没有试过用
date'2019-12-20'代替'2019-12-20'..? -
是的,我做到了,但这也不起作用。
标签: python-3.x oracle sqlalchemy cx-oracle