【发布时间】:2021-10-02 08:46:59
【问题描述】:
我已经编写了 python 脚本来从 oracle 数据库中获取数据并将该数据加载到 csv 文件中。
import datetime
import pandas as pd
import cx_Oracle
con = cx_Oracle.connect('SYSTEM/oracle123@localhost:1521/xe')
c = con.cursor()
sql = "select * from covid_data"
res = c.execute(sql)
t = pd.read_sql(sql,con)
t.to_csv(r'C:\Users\abc\covid.csv')
我希望脚本每天运行并加载到 csv 文件。但是我在这里面临的挑战是我想每天获取数据,但 csv 文件中的数据应该只在特定的那一天可用。前一天的内容第二天应该看不到了
【问题讨论】:
-
你的意思是你只想从oracle中选择前一天的数据吗?如果表启用,您应该可以使用
select查询来做到这一点 -
不,我想将当前数据加载到 csv 文件。不能在 csv 文件中看到前一天的数据。
-
我的评论仍然适用。您需要编写 SQL,以便获得所需的数据
-
不,我写的sql语句是正确的。这里的事情是,当我选择从 sql 到 csv 文件的所有数据时,它会将当天的数据与前一天的数据一起添加。它应该覆盖以前的数据
-
是的,选择查询是正确的,如果您想要整个数据。如果你想要今天的数据,你需要改变它。这取决于数据如何存储在您的表中,您在这里没有描述,但它可能类似于
select * from covid_data where <date_field> >= sysdate -1或类似的东西。如果只需要今天的数据,则不需要选择所有数据。