2017-08-11 37 views
0

SQLクエリの結果を取得するためにpowershellスクリプトを実行しています(SQL2016のJSON形式)。結果は個別の行に分割されています1つのJSON文字列とファイルの先頭にあるヘッダ情報の代わりに、最後に '...'を付けてください。これにより、JSONは使用できなくなります。Powershell Invoke-Sqlcmd出力に「...」とランダムなヘッダが含まれています

私は、これはSSMSで同じクエリを実行することにより、PowerShellの側にあることを確認し、予想通りの結果が出てきた(有効なJSON)

私は、Invokeの出力を制御するための任意のコマンドライン引数を見つけることができませんでした-SqlCommand

PowerShellを初めてお使いの方...このPowerShellスクリプトからクリーンなJSONを手に入れる方法を知りたいですか?

PowerShellスクリプト:

Invoke-Sqlcmd -InputFile "C:\Dashboard\sql\gtldata.sql" | Out-File -filepath "C:\Dashboard\json\gtldata.json" 

返されたドキュメントのサンプル:あなたはあなたの呼び出しに-MaxCharLengthオプションを追加する必要が

JSON_F52E2B61-18A1-11d1-B105-00805F49916B                         
-----------------------------------------                         
{"KPI":[{"BusinessUnit":"Water - Industrial","Location":"SPFIN","TestDate":"2016-09-19T21:11:10.837","TestResult":"Fail","FailReason":"P... 
ial":"100161431","PumpType":"xxx","Stages":0},{"BusinessUnit":"Water - Industrial","Location":"SPFIN","TestDate":"2016-09-20T01:48... 
"PumpType":"xxx","Stages":0},{"BusinessUnit":"Pre-engineered","Location":"SPSPA","TestDate":"2016-09-20T10:46:38.403","TestResult"... 
+0

"| Format-Table"またはその他の書式設定コマンドレットを追加してみてください:https://docs.microsoft.com/en-us/powershell/scripting/using-format-commands-to-change-output-view?view = powershell-6。 – jmoon

+0

私は を取得します。{Out-File:パラメータ 'Encoding'で引数を検証できません。引数 "Format-Wide"は、ValidateSet属性で指定された "unknown、string、unicode、bigendianunicode、utf8、utf7、utf32、ascii、default、oem"に属しません。 セット内の引数を指定してから、コマンドをもう一度やり直してください。} PowerShellをまだ学んでいますが、このエラーについてさらに調査します。 – beeker

+0

Format-Wideは1つの入力を受け取ります。出力の内容に応じて、他の形式のコマンドレットを試してみてください。私はそれがテーブルだと仮定しているので、| Format-TableはFormat-Wideよりも優れています。 – jmoon

答えて

0

。このsqlcmd文書に引用されたように、デフォルトでは、sqlcmd(したがってInvoke-Sqlcmd)は、80文字の出力幅を使用します。

-w column_width

出力画面の幅を指定します。このオプションは、sqlcmdスクリプト変数SQLCMDCOLWIDTHを設定します。列幅は、8より大きく65536未満の数値でなければなりません。指定された列幅がその範囲に収まらない場合、sqlcmdはエラーメッセージを生成し、エラーメッセージを出力します。デフォルトの幅は80文字です。出力行が指定された列幅を超えると、出力行は次の行にラップされます。

フォーマットされていないJSONに改行がないため、出力には-MaxCharLength 65535を設定しようとします。

関連する問題