web-dev-qa-db-ja.com

CX_Oracle-OracleからPandas dataframeにデータをインポートします

やあ、

私はpythonの新人であり、この単純なクエリを使用して、Oracleデータベースからpython(pandas dataframe)にデータをインポートします)

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

何を間違えたのですか?

ありがとう

15
Kardu

SQLクエリを適切に引用する必要があります。質問(またはIDE)で構文の強調表示を見ると、一重引用符が期待どおりに機能していないことがわかります。

最も外側の引用符を二重引用符(すべてを1行にしたい場合)に変更します。または、複数行にまたがる場合は、三重引用符に変更します。

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)
22
Andy