【问题标题】:Import XML with BCP into SQL Server使用 BCP 将 XML 导入 SQL Server
【发布时间】:2016-10-29 12:27:06
【问题描述】:

此代码不会导入整个 xml 文件内容,而只是导入一部分。

bcp s1.dbo.table_test in myfile.xml -c -T -S localhost\sqlexpress

我的文件是一个大文件,大约 100 MB,我的表有 xml 列

如何解决这个问题?谢谢

【问题讨论】:

  • 你在哪里存储这个(数据类型)?您如何检测到只有一部分?可能是,一切正常,但您会看到截断的输出...
  • 表有xml列@Shnugo
  • 这就是我想的……如果部分读取了 XML,则它是无效的(至少缺少结束标记),您将无法将其存储在 XML 列中。那么:您如何测试结果?
  • 如何查看是否加载了所有 xml 文件内容@Shnugo
  • 从我的表中选择 * @Shnugo

标签: sql-server xml database import bcp


【解决方案1】:

正如 cmets 中所指出的,我假设您的 XML 已被完全读取。如果 XML 无效,则无法在 XML 列中存储数据...

你可以试试:

SELECT DATALENGTH(YourXMLColumn) FROM YourTable 

并查看使用的字节(注意:它的unicode,每个字符两个字节)。

或者试试

SELECT LEN(CAST(YourXML AS VARCHAR(MAX))) FROM YourTable

返回字符数

或者

  • 右键单击查询
  • 转到选项
  • 查找数据网格的选项
  • 将 XML 大小设置为无限制

希望对你有帮助

【讨论】:

  • 不容易 :( SELECT DATALENGTH(YourXMLColumn) FROM YourTable show: 176830766 @Shnugo
  • 你能帮我弄清楚它是否是 100 MB 吗?Shnugo
  • @J.si,这个数字是使用的字节数。 176.830.766 字节约为 180MB。如果你的 XML 大约是这个大小(或者这个大小的一半,~90MB),它看起来很好......
  • @J.si 自己的努力会有所帮助 :-) 我花了几秒钟才找到这个:matisse.net/bitcalc/…
  • 如果我在桌面上看到文件的属性,我的文件是 111 MB(116.524.437 字节)@Shanugo
猜你喜欢
  • 2020-04-06
  • 1970-01-01
  • 2020-05-07
  • 2010-10-01
  • 1970-01-01
  • 2013-05-26
  • 2023-03-16
  • 2021-05-29
  • 1970-01-01
相关资源
最近更新 更多