SQLスクリプトのテーブルと列のリストを抽出するPowerShell関数Invoke-SqlParser
(GSPを使用)があります。Get-ChildItemパイプラインデータを強化する
私は、構文解析エンジンの結果に加えて、ソースドキュメントのパスが含まれているCSVファイルを生成したい:Output.csv
の
PS > gci '\\path\to\files' -Include *.sql -Recurse | Get-Content -raw | Invoke-SqlParser -Syntax 'oracle' | ConvertTo-Csv | Out-File ~\Desktop\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
ですがInvoke-SqlParser
関数のコンテンツをパイプラインに追加して、Get-ChildItem
コマンドレットのコンテンツを保持する方法がありますか?または、解析エンジンによって生成されたパイプラインに「挿入」する必要がありますか?
あなたは、機能を持っていて、そのデータを通常の出力(おそらくはスイッチ)に通す機能を変更できないとしますか? – TheMadTechnician
はい、私はそれを行う正しい方法がわかりません。さらに、 'FullName'プロパティまたは' FileInfo'インスタンス全体を追加するだけですか?スクリプトファイルとその中のテーブルとフィールドとの間に「一対多の」関係があるので、どのように表現されますか?たぶん '[PsCustomObject] @ {File = $ FileInfo; TableColumn = @()}'? – craig
'Invoke-SqlParser'関数を見ることなく、パスを渡す手助けをする方法がわかりません。 – TheMadTechnician