Образцы XML-файлов форматирования
Изменения: 17 июля 2006 г.
В примерах этого подраздела показаны ключевые аспекты применения XML-файлов форматирования. Синтаксис файла форматирования не зависит от направления операции; для операций массового импорта и массового экспорта синтаксис одинаков.
В примерах выполняются следующие действия:
- упорядочивание полей с символьными данными по столбцам таблицы;
- упорядочивание полей данных в порядке, отличающемся от порядка столбцов таблицы;
- пропуск поля данных;
- сопоставление различных типов полей и столбцов;
- сопоставление XML-данных с таблицей;
- импорт полей фиксированной длины и полей фиксированной ширины.
Примечание. |
---|
Дополнительные сведения о создании файлов форматирования см. в разделе Создание файла форматирования. |
Примеры
В файлах данных, приведенных в следующих примерах, <tab> обозначает символ табуляции в файле данных, а <return> означает символ возврата каретки.
А. Упорядочивание полей с символьными данными по столбцам таблицы
В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся три поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца. Поля данных соответствуют «один к одному» столбцам таблицы.
Таблица (строка): Person (Age int, FirstName varchar(20), LastName varchar(30))
Файл данных (запись): Age<tab>Firstname<tab>Lastname<return>
Следующий XML-файл форматирования считывает данные из файла данных в таблицу.
В элементе <RECORD>
файл форматирования представляет значения во всех трех полях в символьном виде. Атрибут TERMINATOR
указывает признак конца поля, следующий за значением.
Поля данных соответствуют «один к одному» столбцам таблицы. В элементе <ROW>
файла форматирования столбец Age
сопоставляется с первым полем, столбец FirstName
— со вторым, а столбец LastName
— с третьим.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="3" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Примечание. |
---|
Аналогичный пример для базы данных AdventureWorks см. в разделе Создание файла форматирования. |
Б. Упорядочивание полей данных в порядке, отличающемся от порядка столбцов таблицы
В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся три поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца, порядок следования которых отличается от порядка следования полей файла данных.
Таблица (строка): Person (Age int, FirstName varchar(20), LastName varchar(30))
Файл данных (запись): Age<tab>Firstname<tab>Lastname<return>
В элементе <RECORD>
файл форматирования представляет значения во всех трех полях в символьном виде.
В элементе <ROW>
файла форматирования столбец Age
сопоставляется с первым полем, столбец FirstName
— с третьим, а столбец LastName
— со вторым.
Отличительные особенности этого примера выделены полужирным шрифтом.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="20"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="2" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Примечание. |
---|
Аналогичный пример для базы данных AdventureWorks см. в разделе Использование файла форматирования для привязки столбцов таблицы к полям файла данных. |
В. Пропуск поля данных
В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся четыре поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца. Второе поле данных не связывается ни с одним столбцом таблицы.
Таблица (строка): Person (Age int, FirstName Varchar(20), LastName Varchar(30))
Файл данных (запись): Age<tab>employeeID<tab>Firstname<tab>Lastname<return>
В элементе <RECORD>
файла форматирования значения данных представлены во всех четырех полях как символьные данные. Для каждого поля атрибут TERMINATOR указывает признак конца, следующий за значением данных.
В элементе <ROW>
файла форматирования столбец Age
сопоставляется с первым полем, столбец FirstName
— с третьим, а столбец LastName
— с четвертым.
Отличительные особенности этого примера выделены полужирным шрифтом.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="10"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="20"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Примечание. |
---|
Аналогичный пример для базы данных AdventureWorks см. в разделе Использование файла форматирования для пропуска поля данных. |
Г. Сопоставление <FIELD> xsi:type с <COLUMN> xsi:type
Следующий пример демонстрирует различные типы полей и их сопоставление со столбцами.
<?xml version = "1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD xsi:type="CharTerm" ID="C1" TERMINATOR="\t"
MAX_LENGTH="4"/>
<FIELD xsi:type="CharFixed" ID="C2" LENGTH="10"
COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="CharPrefix" ID="C3" PREFIX_LENGTH="2"
MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NCharTerm" ID="C4" TERMINATOR="\t"
MAX_LENGTH="4"/>
<FIELD xsi:type="NCharFixed" ID="C5" LENGTH="10"
COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NCharPrefix" ID="C6" PREFIX_LENGTH="2"
MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NativeFixed" ID="C7" LENGTH="4"/>
</RECORD>
<ROW>
<COLUMN SOURCE="C1" NAME="Age" xsi:type="SQLTINYINT"/>
<COLUMN SOURCE="C2" NAME="FirstName" xsi:type="SQLVARYCHAR"
LENGTH="16" NULLABLE="NO"/>
<COLUMN SOURCE="C3" NAME="LastName" />
<COLUMN SOURCE="C4" NAME="Salary" xsi:type="SQLMONEY"/>
<COLUMN SOURCE="C5" NAME="Picture" xsi:type="SQLIMAGE"/>
<COLUMN SOURCE="C6" NAME="Bio" xsi:type="SQLTEXT"/>
<COLUMN SOURCE="C7" NAME="Interest"xsi:type="SQLDECIMAL"
PRECISION="5" SCALE="3"/>
</ROW>
</BCPFORMAT>
Д. Сопоставление XML-данных с таблицей
В следующем примере создается пустая таблица из двух столбцов (t_xml
), первый столбец которой сопоставляется с типом данных int
, а второй — с типом данных xml
.
CREATE TABLE t_xml (c1 int, c2 xml)
Следующий XML-файл форматирования загружает файл данных в таблицу t_xml
.
<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="NativePrefix" PREFIX_LENGTH="1"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="8"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="c1" xsi:type="SQLINT"/>
<COLUMN SOURCE="2" NAME="c2" xsi:type="SQLNCHAR"/>
</ROW>
</BCPFORMAT>
Е. Импорт полей фиксированной длины и полей фиксированной ширины
В следующем примере описываются поля фиксированной ширины в 10
или 6
символов каждое. Файл форматирования представляет длину и ширину этих полей в виде LENGTH="10"
и LENGTH="6"
соответственно. Каждая строка файлов данных оканчивается комбинацией символов возврата каретки и перевода строки — {CR}{LF}, которую файл форматирования представляет в виде TERMINATOR="\r\n"
.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharFixed" LENGTH="10"/>
<FIELD ID="2" xsi:type="CharFixed" LENGTH="6"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="C1" xsi:type="SQLINT" />
<COLUMN SOURCE="2" NAME="C2" xsi:type="SQLINT" />
</ROW>
</BCPFORMAT>
Дополнительные примеры
Дополнительные примеры как для файлов, отличных от XML, так и для XML-файлов форматирования см. в следующих разделах.
- Пропуск столбца таблицы с помощью файла форматирования
- Использование файла форматирования для пропуска поля данных
- Использование файла форматирования для привязки столбцов таблицы к полям файла данных
См. также
Основные понятия
Основные сведения о XML-файлах форматирования
Основные сведения о файлах форматирования не в формате XML
Синтаксис схемы для XML-файлов форматирования
Работа с файлами форматирования
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
17 июля 2006 г. |
|
14 апреля 2006 г. |
|