Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Массовый экспорт или импорт документов sqlxmlСодержание книги
Поиск на нашем сайте Для массового экспорта или импорта данных SQLXML используется один из следующих типов данных в файле форматирования.
Преобразование типов из символьного в десятичный В SQL Server 2005 и более поздних версиях выполняемые инструкцией BULK INSERT преобразования типа из строкового в десятичный следуют тем же правилам, что и функция Transact-SQL CONVERT, которая отклоняет числовые значения в экспоненциальном представлении. Такие строки инструкция BULK INSERT трактует как недопустимые и создает отчет ошибки преобразования.
Чтобы решить эту проблему, применяется файл форматирования, позволяющий выполнить массовый импорт данных типа float в экспоненциальном представлении в десятичный столбец. В файле форматирования необходимо явно описать столбец с типом данных real или float. Дополнительные сведения об этих типах данных см. в разделе Типы данных float и real (Transact-SQL).
Пример импорта числового значения в экспоненциальном представлении В этом примере используется следующая таблица: CREATE TABLE t_float(c1 float, c2 decimal (5,4))Пользователю необходимо выполнить массовый импорт данных в таблицу t_float. Файл данных «C:\t_float-c.dat» содержит данные в экспоненциальном представлении float, например: 8.0000000000000002E-28.0000000000000002E-2Однако инструкция BULK INSERT не сможет выполнить импорт этих данных непосредственно в таблицу t_float, так как второй столбец c2 имеет тип данных decimal. Поэтому необходим файл форматирования. В нем данные типа float в экспоненциальном представлении должны быть сопоставлены десятичному формату столбца c2. Следующий файл форматирования использует тип данных SQLFLT8 для сопоставления второго поля данных со вторым столбцом: <?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="CharTerm" TERMINATOR="\t" MAX_LENGTH="30"/> <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="30"/> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="c1" xsi:type="SQLFLT8"/> <COLUMN SOURCE="2" NAME="c2" xsi:type="SQLFLT8"/> </ROW> </BCPFORMAT> Чтобы задействовать этот файл форматирования (файл C:\t_floatformat-c-xml.xml) при импорте тестовых данных в тестовую таблицу, необходимо выполнить следующую инструкцию Transact-SQL: BULK INSERT bulktest..t_floatFROM 'C:\t_float-c.dat' WITH (FORMATFILE='C:\t_floatformat-c-xml.xml');GOРазрешения Требует разрешений INSERT и ADMINISTER BULK OPERATIONS. Кроме того, необходимо разрешение ALTER TABLE, если выполняется одно из следующих условий. · Существуют ограничения, и параметр CHECK_CONSTRAINTS не указан.
· Триггеры существуют, и параметр FIRE_TRIGGER не указан.
· Для импорта значений идентификаторов из файла данных указан параметр KEEPIDENTITY.
|
||||||||||||||||||
|
Последнее изменение этой страницы: 2016-12-11; просмотров: 335; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.) |