0
作为powershell的新手,即时通讯尝试读取通过一个文件夹有多个sql文件,并通过poweshell脚本迭代他们从oracle读取数据并导出到CSV。Powershell:如何将多行字符串解析为字符串参数?
如果我SQLFILE有一行语句代码,没有问题,它的做工精细,如果我的SQL文件有多个行语句 - 因为总是有,
PowerShell的错误出来说 "Get-DataTable : Cannot process argument transformation on parameter 'sql' Cannot convert value to type System.String."
你能帮我解决这个问题吗?在我的代码快照下面。
function Get-DataTable{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[Oracle.DataAccess.Client.OracleConnection]$conn,
[Parameter(Mandatory=$true)]
[string]$sql
)
$cmd = New-Object Oracle.DataAccess.Client.OracleCommand($sql,$conn)
$da = New-Object Oracle.DataAccess.Client.OracleDataAdapter($cmd)
$dt = New-Object System.Data.DataTable
[void]$da.Fill($dt)
return ,$dt
}
foreach ($file in Get-ChildItem -path $ScriptsDirectory -Filter *.sql | sort-object -desc)
{
$SQLquery = get-content "$ScriptsDirectory\$file"
echo $SQLquery
$fileName = $file.name.split(".")[0]
$dt = Get-DataTable $conn $SQLquery
Write-Host "Retrieved records:" $dt.Rows.Count -ForegroundColor Green
$dt | Export-Csv -NoTypeInformation -LiteralPath $WorkingDirectory\$fileName.csv
Write-Host "Output Written to :" $WorkingDirectory\$fileName.csv -ForegroundColor Green }
'获取内容“$ ScriptsDirectory \ $文件”' - >'获取内容“$ ScriptsDirectory \ $文件” -Raw' – PetSerAl