У меня есть Powershell скрипт, который я пытаюсь использовать для записи данных из источника .txt в таблицу SQLPowershell данные об ошибках SQL вставки будут усечены удалены данные и по-прежнему получаю ошибку
Import-Csv $_.fullname -Header Z_AP_EXNUM,Z_AP_ID | ForEach-Object {Invoke-Sqlcmd `
-Database $database -ServerInstance $server -Username $uid -Password $pwd `
-Query "insert into $table VALUES ('$_.Z_AP_EXNUM','$_.Z_AP_ID')"
Мой реальный код имеет около 293 заголовков/столбцов для вставки. Ошибка, которую я получаю, заключается в том, что String или двоичные данные будут усечены. Заявление было прекращено. Я вошел в один из своих тестовых файлов и удалил все данные, но несколько стандартных полей, и все еще получаю эти ошибки. Я не уверен, что может привести к сбою вставки.
Ошибка:
Invoke-Sqlcmd : String or binary data would be truncated. The statement has been terminated. At C:\Users***\Desktop\script\scripy.ps1:79 char:111 + Z_AP_STR_CSEM5_9,Z_AP_STR_NAME5_10,Z_AP_STR_SCOR5_10,Z_AP_STR_CSEM5_10 | ForEach-Object {Invoke-Sqlcmd <<<< ` + CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlPowerShellSqlExecutionException + FullyQualifiedErrorId : SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
Ive просматривал поля, и все типы данных кажутся согласованными, я удалил все данные из одного тестового файла, за исключением простого числа, и все еще получил ту же ошибку, не уверен, что поле пустое вызывает проблема. –
Является ли мой синтаксис по запросу правильным, или я передаю имя литерала из-за кавычек. –
Я понял, это была синтаксическая ошибка с запросом, я считаю, что она проходила буквально. Я изменил свой код, чтобы избежать кавычек и назначил заголовки для варсов и его работу сейчас. аналогично «insert into $ table (filename, size) VALUES (' '$ Name' ','' $ FileSize' ') " } –