【问题标题】:SQL Server bulk insert XML format file with Maximum LENGTH具有最大长度的 SQL Server 批量插入 XML 格式文件
【发布时间】:2016-09-13 13:02:30
【问题描述】:

我想将我的一个 XML 字段的长度设置为 MAX。

XML 代码:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
    <FIELD ID="1" xsi:type="CharFixed" LENGTH="3" />
    <FIELD ID="2" xsi:type="CharFixed" LENGTH="MAXLENGTH"  />
    <FIELD ID="3" xsi:type="CharFixed" LENGTH="10" />
    <FIELD ID="4" xsi:type="CharFixed" LENGTH="8" />

 </RECORD>
 <ROW>
    <COLUMN SOURCE="1" NAME="Field1" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="2" NAME="Field2" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="3" NAME="Field3" xsi:type="SQLNVARCHAR"/>
    <COLUMN SOURCE="4" NAME="Field4" xsi:type="SQLNVARCHAR"/>   
 </ROW>
</BCPFORMAT>

但“MAXLENGTH”似乎不起作用。

错误信息:

bad value MAXLENGTH for attribute "LENGTH"

关于如何将 LENGTH 设置为最大的任何建议?

【问题讨论】:

  • 您要导入到varchar(max) 字段吗?切换到不担心宽度的文本格式文件会更容易吗?
  • 嗨,这个问题解决了吗?您需要进一步的帮助吗?

标签: c# sql-server xml bulkinsert


【解决方案1】:

字符串的长度限制为 4000 (nchar) 或 8000 (char) 类型。没有max length-constant - AFAIC

参考this, "Field Attributes"

如果您像 SQL Server 一样查找架构元数据,您可以点击此链接

http://schemas.microsoft.com/sqlserver/2004/bulkload/format/bulkloadschema.xsd

找到这个

<xsd:attribute name="LENGTH" type="xsd:positiveInteger" use="required"/>
[...]
<xsd:attribute name="MAX_LENGTH" type="xsd:positiveInteger" use="optional"/>

所以lengthrequiredmax_length 似乎是optional,但是如果你指定它,它必须是一个正整数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    相关资源
    最近更新 更多