Я создал скрипт powershell, который позволяет мне запускать и отправлять по электронной почте результаты запросов sql, которые читаются из файла sql:
function global:readscript($path)
{
#using UTF7 encoding to allow select with accented/french/russian/chinese/... etc chars
$inenc = [System.Text.Encoding]::UTF7
$reader = new-object System.IO.StreamReader($path, $inenc)
$finalquery = ""
while ($line = $reader.ReadLine())
{
$finalquery += $line
}
$reader.close()
return $finalquery
}
function global:get-result($query)
{
$oracleconnection = new-object Oracle.ManagedDataAccess.Client.OracleConnection
$oracleconnection.connectionstring = $connectionstring
$oracleconnection.Open()
$oraclecommand = $oracleconnection.CreateCommand()
$oraclecommand.CommandText = $query
$reader = $oraclecommand.ExecuteReader()
#...etc
}
$scriptquery = readscript "d:\mysqlquery.sql"
get-result($scriptquery)
Пока все работает нормально, кроме этогоСкрипт sql, который содержит знак «+» для целей расчета.
Допустим, файл mysqlquery.sql содержит строку, такую как:
(SELECT COUNT(a.ID)) + (SELECT COUNT(b.ID))
Я вижу в консоли, что она переводитсяна
(SELECT COUNT(a.ID)) (SELECT COUNT(b.ID))
и, конечно, выдает это надоедливое исключение «пропущена правильная скобка»
Как мне избежать этого плюса при чтении из txt-файла?