私はPythonで2つのテーブルを結合しようとしています。 (Windowsを使用すると、ジュピターのノートブック)PythonでSQL joinステートメントでpyodbcを使用する
表1は、パンダを使用して読み込まれたExcelファイルです。
TABLE_1= pd.read_excel('my_file.xlsx')
表2は、pyodbcを使用して接続できるOracleデータベースの大きな表です。私はこのようにpyodbcを使ってテーブル全体を正常に読むことができますが、実行には非常に時間がかかります。
sql = "SELECT * FROM ORACLE.table_2"
cnxn = odbc.connect(##########)
TABLE_2 = pd.read_sql(sql, cnxn)
だから私はそれがより速く実行され、私は必要なレコードに引っ張るように、内側には、pyodbcインポートの一環として参加したいと思っ。表1と表2は同じ一意の識別子/主キーを共有します。
sql = "SELECT * FROM ORACLE.TABLE_1 INNER JOIN TABLE_2 ON ORACLE.TABLE1.ID=TABLE_2.ID"
cnxn = odbc.connect(##########)
TABLE_1_2_JOINED = pd.read_sql(sql, cnxn)
しかし、これは機能しません。このエラーが発生します:
DatabaseError: Execution failed on sql 'SELECT * FROM ORACLE.TABLE_1 INNER JOIN TABLE_2 ON ORACLE.TABLE1.ID=TABLE_2.ID': ('42S02', '[42S02] [Oracle][ODBC][Ora]ORA-00942: table or view does not exist\n (942) (SQLExecDirectW)')
私はこれを行うことができます別の方法はありますか?私は数百人に参加する必要があるだけで何百万ものレコードをインポートしなければならないのは非常に非効率的です。ありがとうございました。
あなたは 'TABLE_1'もデータベースに存在しますか? – Ding
いいえ、TABLE_1はExcelにのみ存在し、私はpandas pd.read_excel()メソッドを使用してインポートしました。 – user2895991