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