将 csv 文件中的数据导入到 synapse 表时,出现以下错误:
数据源中 String 类型的给定值无法转换为指定目标列的 nvarchar 类型。,Source=System.Data,''Type=System.InvalidOperationException,Message=String 或二进制数据将被截断。,Source=System.Data
源列数据类型为 nvarchar(max) & 在突触中,nvarchar 无法设置为 max,因此我使用 nvarchar(4000)。但是,即使 4000 也不够,我仍然收到此错误。 (据我所知,字符限制不匹配导致了这个问题?)
在突触中指定数据类型 nvarchar(max) 时,出现以下错误: 声明失败。列“首选项”的数据类型无法参与列存储索引。
Synapse 接受此问题的任何解决方法吗?
最佳答案
Azure synapse 专用 SQL 池中表的默认结构是聚集列存储,不支持 nvarchar(max)。您可以将表创建为堆,因此使用此数据类型。
CREATE TABLE MyTable
(
mycolumnnn1 nvarchar(max),
mycolumn2 int )
WITH ( HEAP )
;
请注意,这可能会影响性能,而且一般来说,如此大的文本字段不太适合数据仓库。
关于string - 替换 Azure 突触表中的 nvarchar(max),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75517148/