У меня есть файл .CSV, который я создал с помощью утилиты командной строки BCP SQL Server BULK-COPY для создания дампа нескольких таблиц базы данных.
Поскольку я хочу импортировать эти файлы .CSV с помощью Powershell и преобразовать их в хороший отчет с помощью командлета format-table, у меня возникают проблемы с выравниванием столбцов и т. д. потому что некоторые столбцы содержат NULL из SQL Server. У меня нет возможности сначала преобразовать NULL из SQL Server; из-за того, как я экспортирую таблицу в CSV.
Поэтому я хотел бы удалить все NULL из файла .CSV, прежде чем пытаться передать его в командлет таблицы форматирования.
Мой основной код ниже:
$CSV=import-csv "c:\temp\tablename.csv"
$CSV | format-table -autosize | out-string -width 4096 >"C:\TEMP\tablename.txt"
Я пытался сделать что-то вроде:
$CSV | -replace($null,"") | format-table -autosize | out-string -width 4096 > "C:\TEMP\tablename.txt"
но я все еще получаю NULL.
Кто-нибудь знает, как удалить NULL из моего CSV, чтобы я мог отобразить хороший табличный отчет. Я хочу, чтобы эти отчеты .TXT импортировались в SVN, но значения NULL вызовут у меня проблемы, к тому же это искажает отчеты.
CSV-файл, как показано в шестнадцатеричном редакторе:
00000EA0h: 31 38 39 2C 31 31 39 2C 37 35 29 2C 77 68 69 74 189,119,75),whit
00000EB0h: 65 2C 77 68 69 74 65 2C 2C 2C 2C 2C 2C 2C 2C 2C e,white,,,,,,,,,
00000EC0h: 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C 2C ,,,,,,,,,,,,,,,,
00000ED0h: 2C 2C 0D 0A 61 63 62 34 33 5F 30 31 2C 4F 4E 2C ,,..acb43_01,ON,
00000EE0h: 00 2C 32 37 2C 39 39 2C 2F 61 63 62 34 33 5F 30 .,27,99,/acb43_0
00000EF0h: 31 2F 34 33 62 61 6C 61 6E 63 65 73 2E 67 69 66 1/43balances.gif
Обратите внимание, что в EE0h первый символ равен NULL, 0x00.
sql-server
вводило в заблуждение, поэтому я немного изменил заголовок, чтобы устранить двусмысленность. Я не уверен, что сейчас это звучит неуклюже или неловко, поэтому, пожалуйста, не стесняйтесь редактировать его снова по своему усмотрению. - person Andriy M   schedule 26.03.2012