Python3 写入Oracle数据库

pandas 自带了 to_sql 方法, 可以将数据集写入数据库.

def to_sql(name, con, flavor=None, 
    schema=None, if_exists='fail', 
    index=True, index_label=None, 
    chunksize=None, dtype=None)

常用的几个参数:
    name: 写入数据库的表名
    con: 数据库连接
    if_exists: 若数据库中存在同名表, 则采取什么操作. 可以使用的值有
        'fail': 写入失败
        'replace': 删除原表, 重新创建新表, 写入数据
        'append': 在原表的基础上, 在表尾插入新数据
        默认是 'fail'
    index: 是否将 dataframe 的 index 写入数据库. 默认是 True
    dtype: 写入数据库时, 各个列对应的数据格式. 指定格式需要从 sqlalchemy 导入 types 模块. 形式是
        {
            'col1': types.VARCHAR(20),
            'col2': ......
        }
  • 写入 Oracle 数据库时, 使用 cx_Oracle 包创建的 conn 对象并不能用在 to_sql 函数中, 需要使用 sqlalchemy 创建 conn 对象
from sqlalchemy import types, create_engine
# 填入Oracle数据库的登录名, 密码, 地址, 端口, 服务名 就可以创建数据库连接
conn = create_engine('oracle+cx_oracle://username:password@location:port/?service_name={}')
df.to_sql('table_name', conn, if_exists='fail', dtype={})

可以在 dtype 参数中指定每一列对应的数据格式

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 10,267评论 0赞 44
  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 5,647评论 1赞 14
  • 文笔越来越差,一败涂地。算什么想要追梦的人?
    赵彬瑶阅读 238评论 0赞 0
  • 在github上下了一个几年前前的老demo,不能运行,几番修改后可以跑起来了,记录一下。。 第一步修改,左上角X...
    WSGNSLog阅读 2,039评论 0赞 3
  • 708殖民星的日子并不好过,巨大的焚风带着硅颗粒横扫有机农田造成了粮食减产。阿句开着生锈的收割机清理水田,那是旧世...
    ErikRed阅读 236评论 0赞 0

友情链接更多精彩内容