使用sqlalchemy和sybase时如何防止熊猫数据框在#tmp周围添加双引号?

问题描述 投票:1回答:1

我已将问题简化为pandas to_sql,在使用sqlalchemy作为池框架处理sybase时,在#tmp周围添加了双引号。

代码:

def get_data_with_tmp():
    engine = get_connection("sybase")
    with engine.connect() as conn:
        df = pd.DataFrame({'alias_id': ['345402KP5', '3454014R1']})
        df.to_sql(name='#tmp', con=conn, schema=None, if_exists='append', index=False)
        df = pd.read_sql_query("SELECT alias_id from #tmp", con=conn)

错误:

statement = '\nCREATE TABLE "#tmp" (\n\talias_id TEXT NULL\n)\n\n' E   pyodbc.ProgrammingError: ('42000', "[42000] [SAP][ASE ODBC Driver][Adaptive Server Enterprise]Incorrect syntax near '('.\n (102) (SQLExecDirectW)")

当我删除#tmp周围的双引号时,它在sybase中工作正常。此外,无需进行任何修改,此相同代码即可在SqlServer中正常工作。

任何想法如何解决此问题?我也欢迎其他建议。请注意,我确实有一种遍历数据框并逐行插入的解决方法,但实际上更喜欢一种使用数据框的好东西,例如批处理,批处理插入等的解决方案。

python dataframe sqlalchemy sybase temp-tables
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.