Файл .bat может выполнить запрос SQL и возвратить значение?

Как я могу назвать запрос из .bat файла? (скажите, что мой запрос: выберите версию из системы).

Мой .bat файл может сохранить вывод, который возвращает этот запрос? Я хочу использовать этот вывод в своем сценарии NSIS.

5
задан marc_s 12 January 2010 в 10:04
поделиться

6 ответов

Для Oracle:

Как я могу выдать одну команду из командной строки через SQL PLUS?

@echo select version from system; | sqlplus username/password@database 

Вы можете либо трусить вывод в файл и использовать это или обернуть это В для команды для анализа вывода в вашем пакетном файле.

9
ответ дан 18 December 2019 в 07:54
поделиться

Редактировать: Этот ответ предназначен для SQL Server, не Oracle. (Это было не сразу понятно, когда вопрос был опубликован).

Вы можете проверить утилиту SQLCMD .

Утилита SQLCMD позволяет вводить операторы Transact-SQL, системные процедуры и файлы сценариев в командной строке. В следующем примере выполняется запрос, когда SQLCMD запускается, а затем выходит сразу. Можно выполнить несколько запятых запросов:

sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM Person.Contact WHERE LastName LIKE 'Whi%';"

, чтобы сохранить выходной сигнал запроса в файл, вы можете использовать опцию -O C: \ .

5
ответ дан 18 December 2019 в 07:54
поделиться

Это зависит от того, какой инструмент вы используете для выполнения запросов. Например, для инструмент командной строки MySQL , вы сделаете:

mysql -u<user> -p<password> -h<host> -Nrs -e"SELECT version() FROM system" > out.txt

здесь, кусок, который проходит MySQL -U -P <пароль> -h являются стандартными опциями для подключения к серверу. -NRS - это набор вариантов, которые приведут клиенту не выводить все арт ASCII для результатов. Бит, который проходит -E "Выберите версию () из системы" на самом деле указывает команду, которая должна быть выполнена. См. http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html Для получения дополнительной информации об этих параметрах MySQL. Ищите аналогичные варианты в клиентском инструменте, который вы хотите использовать.

Последний бит > Out.txt - это стандартная операционная система перенаправления уровня системы. Это приведет к тому, что вывод из программы MySQL будет сохранен в файле out.txt , но, возможно, вы также можете перенаправлять непосредственно в свою программу NSIS.

3
ответ дан 18 December 2019 в 07:54
поделиться

Попробуйте

sqlplus user/pwd@mydb @query.sql > result.txt

, где Query.SQL содержит запрос базы данных, а результат. Atxt будет заполнен выходом запроса.

В зависимости от запроса выходной файл может быть не так, как вы ожидаете его (заголовки столбцов и т. Д. Как типично для SQLPLUS), поэтому ваш Query.sql должен содержать некоторые заданные команды для настройки вывода на ваши потребности.

Другой метод - использовать команду Oracle SPOAL вместо того, чтобы трубопровод результат к файлу.

2
ответ дан 18 December 2019 в 07:54
поделиться

Если у вас есть утилита SQL командной строки, которая наиболее вероятно, что позволяет операциям командной строки. Согласно вашей версии SQL, вы можете проверить это.

0
ответ дан 18 December 2019 в 07:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: