Скрипт Powershell для чтения SQL, содержащий знак «плюс» - PullRequest
0 голосов
/ 29 мая 2018

Я создал скрипт 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-файла?

...