.csv
파일에 SQL Server 쿼리의 결과를 저장하는 작업이 있습니다. 일부 인터넷 검색 후에 PowerShell을 사용하기로 결정했습니다. 스크립트를 발견하고 조금 수정했는데 작동하고 거의 모든 것이 정상입니다.SQL 쿼리를 CSV로 내보낼 때 출력 형식을 지정하는 방법
$server = "server"
$database = "database"
$query = "SELECT * from et_thanks"
$tod = Get-Date;
$file = "{0:yyyyMMdd}_go.csv" -f $tod;
$extractFile = @"
\\info\export_files\$file
"@
$connectionTemplate = "Data Source={0};Integrated Security=SSPI;Initial Catalog={1};"
$connectionString = [string]::Format($connectionTemplate, $server, $database)
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$command = New-Object System.Data.SqlClient.SqlCommand
$command.CommandText = $query
$command.Connection = $connection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $command
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$connection.Close()
$DataSet.Tables[0] | Export-Csv -Force -Delimiter ";" $extractFile
하지만 내가 해결할 수없는이 문제가 :
을 내가 첫 번째 줄에
.csv
내가 열 헤더를 참조 파일 및 주석 문자열 열 때 :#TYPE System.Data.DataRow "ob_no","c_name","c_visible","c_fp","e_from","e_to" "436439","09.09.2013 11:29:08","0","","10937","260153"
을 어떻게 제거 할 수 있습니까?
모든 값은 따옴표로 묶습니다. 내보낼 때 스크립트를 사용하지 않도록 스크립트를 수정할 수 있습니까? Autoreplace는 좋은 생각이 아닙니다. 왜냐하면 인용 부호가 SQL 데이터에서 발견 될 가능성이 있기 때문입니다.
문서 (http://ss64.com/ps/export-csv.html)에서 답변을 찾으려고 시도했지만 성공하지 못했습니다.
감사합니다. 따옴표와 열 이름을 읽는 것은 불가능한 것처럼 보입니다. 수출은 csv-standarts를 통해 이루어집니다. Export-Csv cmdlet은 내 작업에 대한 최선의 아이디어가 아닙니다. – Cove