我必须从 SQL Server 导出一个表,该表包含一个包含大量文本内容的列,文本的最大长度可达 100,000 个字符。
当我使用 Excel 作为导出目标时,我发现此文本的长度被限制并截断为 32,765。
是否有保留长度的导出格式?
笔记:
最佳答案
如 Excel specifications and limits 中所述单个 Excel 单元格中最多可存储 32,767 个字符;因此为什么您的数据被截断。
您最好导出为 CSV,然而 ,请注意 bcp
中不支持引用标识的 CSV 文件/BULK INSERT
直到 SQL Server 2019(当前为预览版)。您可以使用 ||
之类的字符但是,要表示分隔的字段,如果您有任何换行符,您也需要选择不同的行分隔符。然而,SSIS 和其他 ETL 工具确实支持引用标识的 CSV 文件;所以你可以使用类似的东西。
否则,如果您需要导出如此长的值并希望尽可能多地使用 Excel(由于那些糟糕的 ACE 驱动程序,我个人实际上不建议这样做),我建议导出 (n)varchar(MAX)
值到其他东西,如文本文件,并使用包含的主键的值命名每个文件。然后,当您导入数据时,您可以检索 (n)varchar(MAX)
再次从每个单独的文件中获取值。
关于sql - 导出包含大文本列的 SQL Server 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225640/