CX_Oracle - 将数据从 Oracle 导入 Pandas 数据框
Posted
技术标签:
【中文标题】CX_Oracle - 将数据从 Oracle 导入 Pandas 数据框【英文标题】:CX_Oracle - import data from Oracle to Pandas dataframe 【发布时间】:2016-06-17 08:01:06 【问题描述】:喂,
我是 python 新手,我想使用这个简单的查询将一些数据从 Oracle 数据库导入 python(熊猫数据框)
SELECT*
FROM TRANSACTION
WHERE DIA_DAT >=to_date('15.02.28 00:00:00', 'YY.MM.DD HH24:MI:SS')
AND (locations <> 'PUERTO RICO'
OR locations <> 'JAPAN')
AND CITY='LONDON'
我做了什么
import cx_Oracle
ip = 'XX.XX.X.XXX'
port = YYYY
SID = 'DW'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)
connection = cx_Oracle.connect('BA', 'PASSWORD', dsn_tns)
df_ora = pd.read_sql('SELECT* FROM TRANSACTION WHERE DIA_DAT>=to_date('15.02.28 00:00:00', 'YY.MM.DD HH24:MI:SS') AND (locations <> 'PUERTO RICO' OR locations <> 'JAPAN') AND CITY='LONDON'', con=connection)
但是我有这个错误
SyntaxError: invalid syntax
我做错了什么?
谢谢
【问题讨论】:
***.com/questions/32868717/… 【参考方案1】:您需要正确引用您的 SQL 查询。如果您查看问题(或 IDE)中突出显示的语法,您会注意到单引号未按预期工作。
将最外面的引号更改为双引号 - 如果您希望全部放在一行中 - 或者如果您希望在多行中使用三引号:
query = """SELECT*
FROM TRANSACTION
WHERE DIA_DAT >=to_date('15.02.28 00:00:00', 'YY.MM.DD HH24:MI:SS')
AND (locations <> 'PUERTO RICO'
OR locations <> 'JAPAN')
AND CITY='LONDON'"""
df_ora = pd.read_sql(query, con=connection)
【讨论】:
你如何用这个绑定变量? @Superdooperhero - 见***.com/questions/32868717/…以上是关于CX_Oracle - 将数据从 Oracle 导入 Pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中使用 cx_Oracle 中的 executemany() 从批量插入数据加载中查找错误记录
通过cx_Oracle将 pd.dataframe 插入数据到oracle 数据库表 多值插入
Python应用实战系列-如何通过Python来操作Oracle数据库:cx_Oracle
使用 SqlAlchemy 和 cx_Oracle 将 Pandas DataFrame 写入 Oracle 数据库时加快 to_sql()