0
我想将此查询的结果分配给变量,并将该变量用作另一个SQL查询中的宏变量。将SQL查询结果分配给Python中的宏变量
第一次查询:
start_week = 201619
start_date=connection.execute("""
select min(CAST(date_id as DATE)) as start_date from date_table
where CAST(week_id as INT) = %d
"""
%(start_week))
start_date = start_date.fetchone()
此查询的结果是:(datetime.datetime(2017年,7,2,0,0))
第二查询:现在我想用这是第二个查询宏变量
start_wk=connection.execute("""
select fis_week_id as start_wk from date_dim
where date_id = %s
"""
%(start_date))
不过,我得到一个错误,如:
DatabaseError: (cx_Oracle.DatabaseError) ORA-00936: missing expression
[SQL: '\nselect week_id as start_wk from date_dim\nwhere date_id = (datetime.datetime(2016, 7, 4, 0, 0),)\n']
如果有人告诉我如何做到这一点,我将不胜感激。
谢谢!
你想说些什么呢?请发布错误(通常是回溯的最后一行)而不是代码。为什么你不使用游标对象来执行'execute()'? – Parfait
hi-当我运行第一个查询,我得到这个错误:DatabaseError:(cx_Oracle.DatabaseError)ORA-01861:文字不匹配格式字符串 [SQL:'\ n从date_dim选择fis_week_id作为start_wk \ n \ n date_id =:sdate'] [参数:{'sdate':'2016-07-04'}] –
查看更新。对于Oracle,你需要用'to_date()'来包装日期时间字符串。 – Parfait