使用Python向Oracle数据库插入数据,以及chatGPT给出的代码

文章讲述了如何使用Python的cx_Oracle库连接Oracle数据库,并执行动态SQL来插入数据。原始方法是通过存储过程执行SQL,但现在需要改为Python脚本,特别是涉及表名作为变量的情况。作者通过拼接SQL字符串来解决表名变量的问题,实现了从一个表到另一个表的数据插入。另外,还展示了chatGPT提供的一个更灵活的方法,通过fetchall()获取源表数据,然后逐行插入目标表。
摘要由CSDN通过智能技术生成

需求

之前一直都是使用Oracle的存储过程来执行SQL,执行的SQL一般是INSERT INTO TABLE1 SLECT … FROM TABLE2 WHERE…;现在要改为Python执行,主要在于要插入数据的表和来源表都是变量(前面固定,后面为_yyyymm)。正常执行python脚本都需要 py example.py yyyymmdd

环境

Pycharm

Python连接Oracle

Python连接Oracle用的是cx-oracle的包

from cx_Oracle import *
con = connect(user = user_name, password = passwd, dsn = jdbc)

Python执行SQL

1.官方给出的执行sql语句,变量在SQL中用:v1表示,在执行方法里面去赋值。但是这种方法不能给表名设置变量,执行的时候会报错:表名不存在。

from cx_Oracle import *
con = connect(user = user_name, password = passwd, dsn = jdbc)
cursor = con.cursor()
cursor.execute("""
        SELECT first_name, last_name
        FROM employees
        WHERE department_id = :did AND employee_id > :eid""",
        did = 50,
        eid = 190)

2.为了满足我的需求&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值