SSMS: ошибка экспорта в CSV, '... имеет недопустимую длину. Длина должна быть от 0 до 4000. ' - PullRequest
0 голосов
/ 14 октября 2019

Я помогаю кому-то, пытающемуся переместить базу данных из одного программного обеспечения для учета в другое. Источником является файл 4gb + .mdf, который я импортировал в SMSS2014 и пытаюсь экспортировать как файл .csv, поскольку именно из него импортируется целевое программное обеспечение. Это стандартная установка SMSS по умолчанию без каких-либо настроек, так как я не слишком разбираюсь в SMSS, но я понимаю рабочий процесс в техническом смысле. Исходный экспорт завершается неудачно с помощью приведенной ниже ссылки - невозможно опубликовать прямое ss / изображение из-за <10 повторений. Извиняюсь. </p>

https://i.imgur.com/qOOE6vq.png

При просмотре сведений:

===================================

Could not connect destination component.

Error 0xc0204016: SSIS.Pipeline: The "Data Conversion 131 - 0.Outputs[Data Conversion Output].Columns[EntryText]" has a length that is not valid. The length must be between 0 and 4000.
 (SQL Server Import and Export Wizard)

===================================

Exception from HRESULT: 0xC0204016 (Microsoft.SqlServer.DTSPipelineWrap)

------------------------------
Program Location:

at Microsoft.SqlServer.Dts.Pipeline.Wrapper.CManagedComponentWrapperClass.SetOutputColumnDataTypeProperties(Int32 lOutputID, Int32 lOutputColumnID, DataType eDataType, Int32 lLength, Int32 lPrecision, Int32 lScale, Int32 lCodePage)
at Microsoft.SqlServer.Dts.DtsWizard.Execute.AddConvertTransform(TransformInfo ti, Hashtable extColumnByLineageId, IDTSComponentMetaData100 previousConvert, Int32 stepNum)
at Microsoft.SqlServer.Dts.DtsWizard.Execute.CreateExplicitConvertTransform(TransformInfo ti, Hashtable extColumnByLineageId)
at Microsoft.SqlServer.Dts.DtsWizard.Execute.GenerateDestinationColumns(TransformInfo ti, IDTSDesigntimeComponent100 comp)
at Microsoft.SqlServer.Dts.DtsWizard.Execute.SetDestConnection(Exception& ex, TransformInfo ti)

Этапы экспорта: Щелкните правой кнопкой мыши БД -> Задачи -> Экспорт данных ... -> Выбратьисточник -> я остановился на опции SQL Server Native Client 11.0 -> установить сервер и базу данных -> назначение: Excel 97-2003, проверка Первая строка имеет имена столбцов -> установить путь сохранения -> скопировать данные из одного илидругие таблицы или представления -> Выбрать все -> Просмотреть сопоставление типов данных: отображаются проблемные таблицы.

Из того, что я вижу, все, что конвертируется в LongText, нарушает экспорт, по-видимому, независимо от типа источника. Я понимаю, что '... имеет длину, которая недопустима. Длина должна быть от 0 до 4000. 'ошибка означает, но я не уверен, как ее решить.

При двойном щелчке элементов конверсии на шаге просмотра они отображают список, подобный приведенному ниже:

[Source Information]
Source Location : PCNAME\SERVER
Source Provider : SQLOLEDB
Table: [dbo].[Redacted]
Column: Redacted
Column Type: varchar
SSIS Type: string [DT_STR]
Mapping file (to SSIS type): C:\Program Files (x86)\Microsoft SQL Server\120\DTS\MappingFiles\MSSQLToSSIS10.XML

[Destination Information]
Destination Location : C:\Program Files (x86)\Forte Holdings\Chiro8000\Data\export.xls
Destination Provider : Microsoft.Jet.OLEDB.4.0
Table: `Redacted`
Column: Redacted
Column Type: LongText
SSIS Type: Unicode text stream [DT_NTEXT]
Mapping file (to SSIS type): C:\Program Files (x86)\Microsoft SQL Server\120\DTS\MappingFiles\JetToSSIS.xml

[Conversion Steps]
Step 1: DT_STR to DT_WSTR
SSIS conversion file: C:\Program Files (x86)\Microsoft SQL Server\120\DTS\binn\DtwTypeConversion.xml

Я пытался выполнить обратную инженериюв этой статье, но аналогичных расширенных параметров экспорта нет: http://www.thesqlreport.com/?p=837

TL; DR: невозможно экспортировать из SMSS в .csv, попадание: ошибка 0xc0204016: SSIS. Трубопровод: преобразование данных 131- 0.Outputs [Output Conversion Output] .Columns [EntryText] "имеет недопустимую длину. Длина должна быть от 0 до 4000.

Заранее спасибо за любое направление.

...