string - 替换 Azure 突触表中的 nvarchar(max)

标签 string azure azure-synapse

将 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/

相关文章:

java - 何时以及如何有效地使用 StringBuilder/Buffer?

string - 我们如何将文档插入到 Elastic Search 中?‽‽?

python - 如何避免 az ml run --submit-script 命令中出现错误 "conda --version: conda not found"?

authentication - 使用 Azure Synapse 无服务器 SQL 从外部工具查询 Delta Lake

Azure Synapse 工作区 : Where the scripts are published?

C - 带有可选 int 的 scanf 字符串

java - 如何将逗号和分号分隔的字符串拆分为 JSON 对象

Azure powershell - 如何从虚拟机获取 FQDN?

Azure Blob 存储与文件服务

sql-server - 在 Azure 突触分析中创建日期维度