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。
我目前正在努力使用 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。