Python连接 读取 写入数据库

本文介绍了一种使用Python进行数据库同步的方法,通过定时任务从Oracle数据库读取数据,并将其自动备份到PostgreSQL数据库,实现了A数据库到B数据库的数据迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python连接数据库的方式有很多 此处是较为简单的一种

  • 导包
import pandas as pd
from sqlalchemy import create_engine
  • create_engine就可以实现连接数据了(连接oracle)
orengine = create_engine("oracle://USER:PASSWORD@IP/orcl", encoding='utf-8', echo=True)
  • 读取数据库中的数据(此为SQL)
sql = r'''SELECT * FROM table_name '''
df = pd.read_sql(sql,orengine)
  • 到此数据库的连接和读取都可以实现了 接下来就可以一些操作了(Python定时读取A数据库存入到B数据库实现自动备份数据)
from threading import Timer
import os
# 将数据导入到pg数据库
def importpostgr():
    os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
    # 连接两个数据库
    orengine = create_engine("oracle://USER:PASSWORD@IP/orcl", encoding='utf-8', echo=True)
    # postgre数据库
    pgengine = create_engine('postgresql://USER:PASSWORD@IP:5432/database_name')
    # 查询条件SQL
    sql1 = '''SELECT * FROM table_name1 '''
    sql2 = '''SELECT * FROM table_name2 '''
    sql3 = '''SELECT * FROM table_name3 '''
    # 查询oracle数据库
    df1 = pd.read_sql(sql1,orengine)
    df2 = pd.read_sql(sql2,orengine)
    df3 = pd.read_sql(sql3,orengine)
    # 开始写入pg数据库
    print('start import postgresql')
    # create_table_name 导入到pg数据库中你要创建的表名
    df1.to_sql('create_table_name1',pgengine,index=True,if_exists='replace')
    df2.to_sql('create_table_name2',pgengine,index=True,if_exists='replace')
    df3.to_sql('create_table_name3',pgengine,index=True,if_exists='replace')
    print('import postgresql successfully')
    # 定时写入
    t = Timer(3600,importpostgr)
    t.start()
try:
    Timer(1200,importpostgr).start()
except:
    print('停止定时导入pg数据库')
  • 当然以上写法是较为不严谨的 比如oracle的锁表 异常 网络 等等等  待完善....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值