Я пытаюсь импортировать файл CSV в базу данных с помощью PowerShell, но пока мне не везет.
Это мой код (основанный на этом источник ):
Start-job -Name 'ImportingData' `
-InitializationScript {Ipmo DataTableConnect -Force -DisableNameChecking} `
-ScriptBlock {$DataImport = Import-Csv -Header ("heading01","heading02","heading03") -Path $path
$DataTable = Out-DataTable -InputObject $DataImport
Write-DataTable -ServerInstance SERVER -Database DB_NAME -TableName TB_NAME -Data $DataTable
}
куда $path = C:\Users\Administrator\Desktop\TestFolder\testfile.txt
DataTableConnect - это модуль, который включает этот скрипт и .org / 2119 скрипт.
Я не совсем уверен, где моя проблема, все отдельные части работают нормально, единственное, что я думаю, может быть проблема в том, что $DataTable
возвращает кучу system.data.datarow
«S. Однако другие Q & A говорят о том, что это ожидается.
Спасибо, любая помощь очень ценится.
EDIT01: я не получаю никаких ошибок или ничего. Я написал код в файле .ps1, а затем запустил его через PowerShell 2.
Я просто заметил, что если я запускаю его без работы (таким образом код выглядит так):
Ipmo DataTableConnect -Force -DisableNameChecking
$DataImport = Import-Csv -Header ("heading01","heading02","heading03") -Path $path
$DataTable = Out-DataTable -InputObject $DataImport
Write-DataTable -ServerInstance SERVER -Database DB_NAME -TableName TB_NAME -Data $DataTable
Я получаю совсем немного ошибок:
Запись-DataTable: запись-DataTable : System.Management.Automation.MethodInvocationException: исключение вызов «WriteToServer» с аргументом (ами) «1»: «Заданное значение типа Строка из источника данных не может быть преобразована в тип даты указанный целевой столбец. "--- & gt; System.InvalidOperationException: данное значение типа String из источника данных не может быть преобразовано в введите дату указанного целевого столбца. --- & GT; System.FormatException: Не удалось преобразовать значение параметра из String в DateTime. --- & GT; System.FormatException: строка не была распознана как допустимый DateTime.
Все столбцы в текстовом файле являются действительными и соответствуют типу данных столбца sql. Это дает мне эту ошибку, потому что она импортирует все как текст? Если так, как бы мне этого избежать?
EDIT02: я изменяю data_types всех столбцов на текстовые (или varchar), и теперь он действительно правильно импортирует. Таким образом, кажется, что он импортирует столбцы / данные в виде (простого) текста.
источник