I am trying to create a PowerShell script that runs multiple scripts on a database.
here is what I have so far. It seems to only work when there is one script but when I add the second script starts to generate errors. Any help will be much appreciated.
$crlf = [System.Environment]::NewLine
[string] $TNS = 'LINKED_SERVER'
$sqlfile = "c:\temp\script1.sql", "c:\temp\script2.sql"
$connection=New-Object DATA.OracleClient.OracleConnection("Data Source=$TNS;User Id=TEST;Password=XXXXXXXX")
foreach ($sqlfiles in $sqlfile){
$FileLines = Get-Content $sqlfile
$query = [string]::Join($crlf,$FileLines)
#log start time
[datetime]$Now = Get-Date
[string] $TSbegin = $Now.ToString("yyyy-MM-dd HH:mm:ss")
echo "`n`nExecuting script $sqlfiles Started at: $TSbegin"
[System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient") | Out-Null
$connection.Open()
$res = (new-Object DATA.OracleClient.OracleCommand($query,$connection))
$output = $res.ExecuteScalar()
#log end time
[string]$TSend = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$Duration = New-TimeSpan -Start ($TSbegin) -End (Get-Date)
echo "`n$('{0:N0}' -f $output) Rows returned"
echo "`nExecuting script $sqlfiles completed at: $TSend"
$Duration |Format-Table -AutoSize
# Remove-Variable res
}
$connection.Close()