如何使用to_sql将pandas数据框写入oracle数据库?

避风港

我是一名新的oracle学习者。我正在尝试将pandas数据框写入到oracle表中。在网上进行研究之后,我发现代码本身非常简单,但是我不知道为什么我的代码不起作用。

我已经从本地文件中读取了熊猫数据框:

import cx_Oracle
import pandas as pd
import os

dir_path = os.path.dirname(os.path.realpath("__file__"))
df = pd.read_csv(dir_path+"/sample.csv")

现在打印df,数据框df的数据如下:

   DATE            YEAR     MONTH      SOURCE      DESTINATION
0  11/1/2017 1:00  2017     1          AL          CO  
1  11/2/2017 1:00  2017     5          GA          ID  
2  11/3/2017 1:00  2017     12         GA          MO    

然后,我使用cx_Oracle创建与数据库的连接,它可以工作。接下来,我尝试将数据帧df写入表TEST中。表TEST是一个空表,已经存在于oracle数据库中,它在oracle中具有DATE,YEAR,MONTH,SOURCE,DESTINATION列。所有数据类型都与df样本数据匹配。我的代码如下:

conn_str = u'account/password@host:1521/server'
conn = cx_Oracle.connect(conn_str)

# Write records stored in a DataFrame to a oracle database
df.to_sql('TEST', conn, if_exists='replace') # the error shows here

conn.close()

它显示错误:

DatabaseError:在sql'SELECT name from sqlite_master WHERE type ='table'AND name = ?;'上执行失败:ORA-01036:非法变量名称/编号

如何解决问题?非常感谢您的宝贵时间!

最大容量

我曾在SO上看到过类似的问题-当您尝试使用由创建的连接对象写入Oracle DB时,就会发生这种情况cx_Oracle

尝试使用SQL Alchemy创建连接:

import cx_Oracle
from sqlalchemy import types, create_engine

conn = create_engine('oracle+cx_oracle://scott:tiger@host:1521/?service_name=hr')

df.to_sql('TEST', conn, if_exists='replace')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用SqlAlchemy和cx_Oracle将Pandas DataFrame写入Oracle数据库时,加快to_sql()的速度

将Pandas数据框写入AWS Athena数据库

pandas to_sql 只将第一行写入数据库

使用SQLAlchemy,to_sql用熊猫写入MySQL数据库

使用 df.to_sql() 将数据块写入数据库时出现 Pandas 错误

使用SSH将Pandas Dataframe写入MYSQL数据库

使用PYODBC从Pandas写入SQL Server数据库

如何使用Blob对象将较大的原始XML文件写入Oracle数据库?

如何将此熊猫数据框写入此 SQL Server 数据库中的新表?

如何使用条件写入数据库?

使用循环将数据写入R中的oracle数据库

使用foreach将数据写入Access数据库

如何确认数据库是Oracle以及使用SQL的数据库是哪个版本?

如何将Azure静态Web表单数据发送/写入Azure SQL数据库

Python SQL Pandas - 无法将大于 27650 行的数据框导入数据库

无法将数据写入数据库

在数据库的整数列中使用Nan将数据写入数据库

通过pandas to_sql命令检查数据库插入结果-Flask

将JSON值写入SQL数据库

将隐藏字段写入sql数据库php

将SAS日期写入SQL Server数据库

将数据从Oracle导入Microsoft SQL数据库

如何使用Python Pandas使用同一数据库创建多个数据框

如何将Pandas DataFrame直接写入Netezza数据库?

如何将 SQL 数据库中的数据显示到文本框

Oracle数据库中的写入次数

如何使用robotframework数据库库将utf8字符插入oracle数据库

如何将JSONObject写入Firebase数据库节点

如何将聚合结果写入数据库