PowerShellスクリプトを実行してデータベースからデータを取り出し、csvファイルに保存するSQL Serverエージェントジョブがあります。SQL ServerエージェントでPowerShellスクリプトを実行していません
ジョブタイプはPowerShell
に設定され、コマンドは次のようになります。私はこの仕事を実行すると
[email protected]'exec my_stored_procedure'@
$result = Invoke-Sqlcmd -ServerInstance INSTANCE_NAME -Database DBNAME -Query $sql
#The first row gets removed and then save it to a csv file
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\SERVER\c$\Folder\file.csv
は、それが正常に実行されますが、file.csv
は、指定した場所に作成されていません。
私は、ジョブ履歴をチェックし、それは言う:
ジョブスクリプトは、次のエラーが発生しました。これらのエラーは スクリプトを停止しませんでした:(.....)対応する行は
$result | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content \\SERVER\c$\Folder\file.csv
です。スクリプトを訂正し、 ジョブのスケジュールを変更してください。 PowerShellによって返されるエラー情報は'Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.'
です。プロセス終了コード0
誰かが私が迷っていることを理解するのに役立つでしょうか? これは私の最初のPowerShellプロジェクトです。だから、おそらく他の人には明白なことがありません。
あなたはSQLに接続するために、PowerShellを実行するためにSQLを使用している任意の特定の理由を:
が、ディレクトリにCDingやファイルを指定するには、トリックをやりましたか?なぜそこからプロシージャを実行してエクスポートしないのですか?おそらくあなたのニーズに応じてSSISを使用してください。 – Matt
@Matt PSスクリプトの前に実行する必要がある他のジョブがあるので、SQL Serverエージェントのジョブステップの一部としてPSを実行できることを期待していました。 – kabichan
PowerShellの 'Export-Csv'コマンドレットを試してみませんか? '$ result | Export-Csv -path \\ SERVER \ c $ \ Folder \ file.csv -NoTypeInformation' –