将 SQL 导出到 CSV 时出错 - 管道

Posted

技术标签:

【中文标题】将 SQL 导出到 CSV 时出错 - 管道【英文标题】:Error Exporting SQL to CSV - Pipeline 【发布时间】:2017-07-20 18:42:24 【问题描述】:

对编码/Powershell 非常陌生,但我非常接近我的项目。尝试自动连接到我的 SQL DB 并导出到 CSV(或 excel 如果可能)。我已成功连接到数据库并获得准确的信息,但似乎无法将数据导出到文件中。这是我的代码:

$DBServer = "E2\E2SQL"
$databasename = "****"
$UID = "sa"
$pass = "*****"
$Connection = new-object system.data.sqlclient.sqlconnection #Set new object to connect to sql database
$Connection.ConnectionString ="server=$DBServer;database=$databasename;User Id=$UID;password=$pass;trusted_connection=False" # Connectiongstring setting for local machine database with window authentication
Write-host "Connection Information:"  -foregroundcolor yellow -backgroundcolor black
$Connection #List connection information


### Connect to Database and Run Query

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand #setting object to use sql commands

$SqlQuery = @"

SELECT JobNo FROM Online

"@

$Connection.open()
Write-host "Connection to database successful." -foregroundcolor green -backgroundcolor black
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$SqlCmd.Connection = $Connection
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$Connection.Close()
$DataSet.Tables[0]
export-csv -path "C:\Users\BOB\Desktop\TEST.csv" -NoTypeInformation

当我运行代码时,会显示正确的信息!但是,我收到一个弹出窗口,上面写着“命令管道位置 1 处的 cmdlet Export-Csv - 为以下参数提供值:InputObject”我一直在尝试解决这个问题,但没有成功。知道这个错误是什么或如何解决它吗?如何获取数据以写入我的 CSV(或如果可能的话 excel)? 谢谢大家

【问题讨论】:

【参考方案1】:

一种更短的方法:

$output ="C:\Users\BOB\Desktop\TEST.csv"   
$DBServer = "E2\E2SQL"
$databasename = "****"
$UID = "sa"
$pass = "*****"
$SqlQuery = @"SELECT JobNo FROM Online"@


invoke-sqlCmd -serverinstance @DBServer -database $databasename 
      -Username $UID -Password $pass -Query $SqlQuery |  Export-Csv $output

【讨论】:

以上是关于将 SQL 导出到 CSV 时出错 - 管道的主要内容,如果未能解决你的问题,请参考以下文章

如何使用管道分隔符导出到 .csv

数据从 SQL Developer 导出到 CSV

将数据从 oracle sql plus 导出到 csv 时,Hypen 转换为问号

如何将数据从 Spark SQL 导出到 CSV

如何将 PostgreSQL 查询输出导出到 csv 文件

Sqlcmd使用SQL Server存储过程将数据导出到csv