데이터베이스에서 데이터를 가져 와서 csv 파일에 저장하는 PowerShell 스크립트를 실행하는 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을 사용하는 어떤 특별한 이유? 그곳에서 프로 시저를 실행하고 내보내는 것이 어떨까요? 아마도 당신의 필요에 따라 SSIS를 사용하십시오. – Matt
@Matt PS 스크립트 전에 실행해야하는 다른 작업이 있으므로 SQL Server 에이전트 작업 단계의 일부로 PS를 실행할 수 있기를 바랬습니다. – kabichan
PowerShell의 'Export-Csv' cmdlet을 사용해 보시지 않겠습니까? '$ 결과 | Export-Csv -path \\ SERVER \ c $ \ Folder \ file.csv -NoTypeInformation' –