Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.12.2008
Сообщений: 19
1

Парсинг SQL-запроса

25.04.2014, 14:04. Показов 2216. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть некий запрос.

выполняю в PowerShell

PowerShell
1
sqlcmd -d MyDB -q "select * ..."
выводится результат:

Код
result
------------------------
               5.242
               4.945

Как выполнить запрос и в то же время отпарсить и вывести только значения? 

чтобы было просто:

5.242
4.945
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2014, 14:04
Ответы с готовыми решениями:

Парсинг запроса
Здравствуйте форумчане. Как получить значения параметров запроса в разрабатываемом модуле из...

Ошибка SQL запроса: SQL logic error or missing database
Здравствуйте, помогите решить проблему. Считываю бинарный файл и отправляю в БД(использую SQLite) с...

Вставка данных из Excel в SQL. При помощи запроса SQL....
Доброго времени суток. Не могли бы Вы мне помочь с SQL запросом, которй вставлял бы весь лист в ...

Ошибка SQL-запроса: You have an error in your SQL syntax near 'group(name_group,time)VALUES('123','00:00')'
Уже всю голову сломал, не могу понять в чем косяк? Текст ошибки:You have an error in your SQL...

4
Администратор
Эксперт .NET
17553 / 13776 / 5298
Регистрация: 17.03.2014
Сообщений: 28,253
Записей в блоге: 1
25.04.2014, 14:49 2
Смотритель, если ты уверен что на выходе всегда будет строка result за которой идет строка с минусами и ты знаешь позицию, то можно сделать так:
PowerShell
1
sqlcmd -d MyDB -q "select * ..." | Select-Object -Skip 2
Или можно пропустить все строки до определенной
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function Skip-Until-Line() {
    param (
        [Parameter(Mandatory=$true, ValueFromPipeline=$true)][PsObject]$InputObject,
        [Parameter(Mandatory=$true)][string]$Line
    )
    begin {
        $skip = $true
    }
    process {
        if ( $skip -and $InputObject.ToString() -eq $Line) {
            $skip = $false
            return
        }
 
        if ( -not $skip ) {
            $InputObject
        }
    }
    end {}
}
 
 
sqlcmd -d MyDB -q "select * ..." | Skip-Until-Line -Line '------------------------'
0
0 / 0 / 0
Регистрация: 16.12.2008
Сообщений: 19
25.04.2014, 15:52  [ТС] 3
результат на самом деле такой

Код
Duration
------------------------
               123
               456
(2 rows affected)
я сделал так:
PowerShell
1
2
3
4
5
6
7
8
param (
[string]$db_name
)
 
$query=sqlcmd -d $db_name -i C:\dur.sql
$num = $query -match "\s\d"
$num = $num.trim()
$num
На Win 8 работает. а на Win 2012 ругается на TRIM

Код
Method invocation failed because [System.Object[]] doesn't contain a method named 'trim'.
At line:1 char:1
+ $num = $num.trim()
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
как можно по другому удалить пробелы в выводе?
0
Администратор
Эксперт .NET
17553 / 13776 / 5298
Регистрация: 17.03.2014
Сообщений: 28,253
Записей в блоге: 1
25.04.2014, 17:12 4
Лучший ответ Сообщение было отмечено Смотритель как решение

Решение

Смотритель, я бы сделал так:
PowerShell
1
sqlcmd -d $db_name -i C:\dur.sql | ? { $_ -match "^\s+?\d+" } | % { $_.Trim() }
или так, если снова будет ругаться на отсутствие Trim()
PowerShell
1
sqlcmd -d $db_name -i C:\dur.sql | ? { $_ -match "^\s+?\d+" } | % { $_.ToString().Trim() }
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 358
03.05.2014, 23:23 5
Используйте у sqlcmd ключ -h -1

http://technet.microsoft.com/r... 62773.aspx
0
03.05.2014, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2014, 23:23
Помогаю со студенческими работами здесь

SQL запросы, чем плоха конкатенация SQL запроса?
Опишу ситуацию, есть БД с несколькими таблицами, с которыми нужно совершать много разных операций...

Парсинг запроса к сайту
я открываю сайт aiesec.org и в отладчике хрома, во вкладке network появляется пара ссылок примерно...

Парсинг HTTP запроса
Добрый день. Прошу помощи. Отправляю себе на сервер http данный с multiform на сервере их...

SQL-запрос результатов другого SQL-запроса
Часто встречающийся пример: в первом запросе выполняется выборка по параметрам (к примеру, диапазон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru