在将数据插入突触表数据类型时自动从 Varchar 转换为 Text

Posted

技术标签:

【中文标题】在将数据插入突触表数据类型时自动从 Varchar 转换为 Text【英文标题】:while inserting data into synapse table data type automatically converting into Text from Varchar 【发布时间】:2021-07-24 12:14:15 【问题描述】:

我正在尝试使用 python 代码将数据从 csv 插入到突触表中,但是当代码尝试创建表时,它会自动将字符串类型转换为文本

下面是连接数据库并创建或插入数据到表中的代码

params=parse.quote_plus("connection string")

engine=sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" %params,echo=True,connect_args='automcommit':True)


wrt_df.to_sql(tbl_name,con=engine,if_exist="append",schema=db_name,index=false)

我通过 excel 文件输入的内容

【问题讨论】:

【参考方案1】:

我假设您在这里谈论的是 SQL 池。 Synapse 不支持文本数据类型,不确定您是如何看到此文本的。

https://docs.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-data-types.

【讨论】:

我通过 SSMS 使用天蓝色突触服务器,我只将数据类型指定为 varchar,但在创建表时它会自动将数据类型视为文本,不知道为什么有任何方法可以动态改变这个 你能分享一下你在 Synapse 端看到的表结构吗? 我没有使用突触端的表我在数据库中创建表时通过 excel 输入列

以上是关于在将数据插入突触表数据类型时自动从 Varchar 转换为 Text的主要内容,如果未能解决你的问题,请参考以下文章

将varchar值'N'转换为数据类型smallint时,转换失败。

将 varchar 值“N”转换为数据类型 smallint 时转换失败

SQL用交叉报表时报错:在将 varchar 值 'then result else 0 end)' 转换成数据类型 int 时失败。

在将 varchar 值 'xiaoming' 转换成数据类型 int 时失败。

500 : 服务器错误DataTableSQL Error: 在将 varchar 值 'A03' 转换成数据类型 int 时失败。啥问题?

在将 varchar 值 '借阅次数' 转换成数据类型 int 时失败