У меня есть функция PowerShell Invoke-SqlParser
(с использованием GSP), которая будет извлекать список таблиц и столбцов в SQL-скрипте.Уточнение данных конвейера Get-ChildItem
Я хотел бы, чтобы создать CSV-файл, содержащий путь исходного документа, в дополнение к результатам разбора двигателя:
PS > gci '\\path\to\files' -Include *.sql -Recurse | Get-Content -raw | Invoke-SqlParser -Syntax 'oracle' | ConvertTo-Csv | Out-File ~\Desktop\Output.csv
Желаемая содержание Output.csv
:
File Table Column
---- ----- ------
\\path\to\files\script0.sql table0 column0
\\path\to\files\script0.sql table1 column1
\\path\to\files\scriptB.sql tableB columnR
\\path\to\files\scriptB.sql tableC columnQ
Is есть способ добавить контент из функции Invoke-SqlParser
в конвейер так, чтобы он сохранял содержимое с Get-ChildItem
Cmdlet? Или мне нужно «вставить» его в конвейер, созданный механизмом синтаксического анализа?
Вы говорите, что у вас есть функция, не могли бы вы просто изменить функцию для передачи этих данных с помощью нормального выхода (возможно, с помощью переключателя)? – TheMadTechnician
Да, но я не уверен, как правильно это сделать. Кроме того, я просто добавляю свойство «FullName» или весь экземпляр «FileInfo»? Как есть отношение «один ко многим» между файлом сценария и таблицами и полями в нем, как это будет отображаться? Может быть, '[PsCustomObject] @ {File = $ FileInfo; TableColumn = @()}'? – craig
Не видя функцию 'Invoke-SqlParser', я не знаю, как помочь вам пройти путь. – TheMadTechnician