![]() |
Преобразовать данные в DataTable
Доброго времени суток! Делаю запросы в базу через консольную утилиту sqlcl и пытаюсь привести ответ в нужную форму. А именно, в ответ от утилиты получаю System.Array с объектами. К объектам можно обратиться по индексу, но проблема в том, что PowerShell распознает разбивку на объекты неправильно. В ответе есть значение таблицы, которое содержит много строк и PowerShell каждую строку помечает как отдельный объект. В ответе два столбца и строки.
Примеры получаемых данных
Первая строка в ответах всегда пустая.
Пример вывода csv, System.Array, count 8: Код:
"COUNT_ERROR","BODY_ERROR" Код:
Код:
{"results":[{"columns":[{"name":"COUNT_ERROR","type":"NUMBER"},{"name":"BODY_ERROR","type":"VARCHAR2"}],"items": Далее это добро я хочу записать в другую базу, где есть эти же два столбца. Для этого мне нужно правильно распознать получаемые данные, а это два столбца и сколько то строк. Данные преобразовать в DataTable. Воспользоваться Invoke-SQLiteBulkCopy. Не могу никак разобрать данные и преобразовать в DataTable. |
Пока только получилось сохранить данные в файл csv и после импорта уже разбирать его.
Скрипт
Код:
$datasource = "D:\base_dw.db" Может кто знает как можно обойтись без экспорта и импорта файла? Решить все в теле скрипта? |
есть ConvertFrom-Csv. Можно попробовать через переменную.
Код:
$arr = $comand .... (без Out-File) |
Я ранее пробовал ConvertTo-Csv, но всегда получал, что-то типа:
Код:
"Length" Цитата:
|
Осталось победить кодировку. Она ломается два раза, сначала при выгрузке из одной базы, а потом уже после загрузки в другую. В самом PL/SQL Developer все круто, но консольные утилиты все ломают.
Что изначально: Код:
ERROR:РТТ:StatusLastOperation=RequestError Подробная ошибка=' ERROR: StatusLastOperation=ErrorReadingStreamException Exception при чтении ответа сервера РТТ. Exception=System.Net.WebException: The remote server returned an error: (400) Bad Request. Код:
ERROR:РњTТ:StatusLastOperation=RequestError Подробная ошибка=' ERROR: StatusLastOperation=ErrorReadingStreamException Exception РїСЂРё чтении ответа сервера РњРўРЎ. Exception=System.Net.WebException: The remote server returned an error: (400) Bad Request. Код:
ERROR:╨ЬTТ:StatusLastOperation=RequestError ╨Я╨╛╨┤╤А╨╛╨▒╨╜╨░╤П ╨╛╤И╨╕╨▒╨║╨░=' ERROR: StatusLastOperation=ErrorReadingStreamException Exception ╨┐╤А╨╕ ╤З╤В╨╡╨╜╨╕╨╕ ╨╛╤В╨▓╨╡╤В╨░ ╤Б╨╡╤А╨▓╨╡╤А╨░ ╨Ь╨в╨б. Exception=System.Net.WebException: The remote server returned an error: (400) Bad Request. |
Кодировка побеждена
Код:
function ConvertTo-Encoding ([string]$From, [string]$To){ Код:
$arr = $comand ....| ConvertTo-Encoding UTF-8 windows-1251 Код:
$arr = $comand ....| ConvertTo-Encoding UTF-8 cp866 |
Цитата:
|
Время: 23:48. |
Время: 23:48.
© OSzone.net 2001-