简体   繁体   中英

SQL Server bulk insert XML format file with Maximum LENGTH

I want to set the length to MAX for one of my XML fields.

XML Code:

<?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>

But 'MAXLENGTH' does not seem to work.

Error message:

bad value MAXLENGTH for attribute "LENGTH"

Any suggestions on how to put the LENGTH to maximum ?

The length of a string is limited to 4000 (nchar) or 8000 (char) type. There is no max length -constant - AFAIC

Refer to this, "Field Attributes"

If you look up the schema meta-data just as SQL Server does, you can follow this link

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

to find this

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

So the length is required while max_length seems to be optional , but if you specify it, it must be a positive integer.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM