python - cx_Oracle中如何使用Pandas Write_Frame将结果导出到Oracle数据库

标签 python sql oracle pandas cx-oracle

我正在尝试将 Pandas DataFrame 导出到 Oracle 数据库。我在 Pandas 中遇到了 Write_Frame 函数,这听起来正是我所需要的。

但是,我在网上进行了大量搜索,但就是无法正常工作。我已经导入了 cx_Oracle 并且可以连接到 Oracle 数据库以及运行 SQL 查询而没有任何问题,但是当我运行它时它会给我一个“NotImplementedError”:

import pandas.io.sql as psql

 output = psql.write_frame(MyResults, name = 'MySchema.MyTable', con = MyCon, 
                           flavor = 'oracle', if_exists = 'replace')

到目前为止,我在sqlite和mysql上看到了很多wrtie_frame的例子,那是否意味着如果flavor = 'oracle'它就不能工作了?我曾尝试将风格更改为 mysql,但它给我一个错误提示:'Invalid SQL statement'??

谁能帮我解决这个问题,因为我更喜欢不必将结果写入 CSV 文件然后导出到数据库表?

谢谢

最佳答案

扩展 Andy Hayden 的评论:pandas <= 0.13 及更早版本确实不支持 oracle(仅支持 sqlite 和 mysql)。

但是 sql 模块在 0.14 中进行了大修(目前正在开发中)。它现在在后台使用 sqlalchemy,因此现在通常应该通过 sqlalchemy 支持 oracle。有关详细信息,请参阅开发文档:http://pandas-docs.github.io/pandas-docs-travis/io.html#io-sql .事实上,如果您能够使用 Oracle 对其进行测试并提供一些反馈,那就太棒了!

关于python - cx_Oracle中如何使用Pandas Write_Frame将结果导出到Oracle数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22460515/

相关文章:

java - 如何从jsp页面/java程序调用自定义sql包

python - 将少量 python 嵌入到批处理脚本中

python - 如何调整可滚动框架的大小以填充 Canvas ?

mysql - 选择包含在另一个表的集合中的行

php - Binding参数如何防止Sql注入(inject)?

sql - ROWNUM 作为 T-SQL 中等效的伪列?

python - 在 python 中计算频率的最干净的方法是什么

c# - 您可以将 Python 嵌入到 C 程序中,然后在不使用外部工具的情况下从 C#/ASP.NET 调用它吗?

sql - Rails SQL 查找关联具有列表 ID 的所有位置

oracle - 获取oracle db中最后插入记录的ID