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 参数中指定每一列对应的数据格式

你可能感兴趣的:(Python3 写入Oracle数据库)