无需正确编写

时间:2016-12-08 15:04:09

标签: python sql oracle pandas

在Python中,使用Pandas,我有一个数据框,我想与Oracle数据库中的表连接。
我在数据库中没有写权限。因此,我目前这样做:

#select the column you want to use to query
ID_list = data['ID']

#cut the list in chunks of 1000 to overcome Oracle limitation on SQL query
chunks = [ID_list[x:x+1000] for x in range(0, len(ID_list), 1000)]

#initiate connection to Oracle
cnxn = pyodbc.connect('DSN=XXX;UID=YYY;PWD=ZZZ')

#initiate an empty frame
df = pd.DataFrame()

#query each chunk of 1000 ID and append it to df
for chunk in chunks:
    sql_query = 'SELECT * FROM TABLE_X WHERE ID IN (' + ','.join(map(str, chunk)) + ')'
    df = df.append(pd.read_sql(sql_query, cnxn), ignore_index=True)

然后我会研究df并且可能将其与数据合并。 我确定它比SQL连接慢得多,但我无法上传我的数据帧。

这是最有效的解决方案吗?

0 个答案:

没有答案