python - CX_Oracle - 将数据从 Oracle 导入到 Pandas 数据框

标签 python oracle cx-oracle

你好,

我是 python 的新手,我想使用这个简单的查询将一些数据从 Oracle 数据库导入到 python(pandas 数据框)

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

我做错了什么?

谢谢

最佳答案

您需要正确引用您的 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)

关于python - CX_Oracle - 将数据从 Oracle 导入到 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781580/

相关文章:

python - 有哪些可以相互比较的内置 Python 3 类型?

python - 检查是否没有列表元素包含搜索的子字符串

python - 在python中格式化输出

sql - 具有不同数据类型的案例语句

python - 将cx_Oracle部署到各种版本的Oracle客户端上

Python 全局变量通过导入?

java - 使用 SimpleDateFormat 转换微秒

java - 以编程方式插入行(父行和子行)

python - 使用python从sql查询中的文本文件调用日期

python - Anaconda:安装本地二进制包到Windows中的conda环境