pandas to_sql SQLAlchemy 和 Sybase 语法错误

pandas to_sql syntax error with SQLAlchemy and Sybase

我目前正在努力使用 pandas 中的 to_sql 函数,同时在新的 table 中创建和插入数据。

这是代码:

import pandas as pd
import sqlalchemy
import urllib

params=urllib.parse.quote_plus("Driver=Adaptive Server Enterprise;SERVER=xxx.div.com;DATABASE=MYDB;USER=DIV;Pass=XXX;PORT=12345)
table_name="tab2"
engine = create_engine("sybase+pyodbc:///?odbc_connect=%s" %params,echo=True)

query = "Select Col1,Col2,Col3 from tabA"

df=pd.real_sql_query(query,con=engine)

df.to_sql(table_name,engine,if_exists='replace',schema=dbo)

以下生成的创建语句如下: 创建 table dbo."tabB" ( “col1” BIGINT NULL, “col2” BIGINT NULL, “col3” BIGINT NULL )

然后错误出现 sqlalchemy.exc.Programmingerror : (pyodbc.Programmingerror) '('附近的语法不正确\n

默认的“”(双重生成)导致了这个问题。因为在 ASEISql 上执行此语句时 SQL 语句抛出相同的错误。

对此的任何解决方法都会有所帮助。

提前感谢您的帮助。

注意引擎创建成功。

我能够使用 SQLAlchemy 1.3.18 中的内部“sybase”方言重现您的问题。内部方言是

  • 不支持,
  • 即将正式弃用,并且
  • 将从未来的版本中删除。

我还确认 external SAP ASE (Sybase) dialect 正确呈现 DDL。