Как я могу назвать запрос из .bat файла? (скажите, что мой запрос: выберите версию из системы).
Мой .bat файл может сохранить вывод, который возвращает этот запрос? Я хочу использовать этот вывод в своем сценарии NSIS.
Для Oracle:
Как я могу выдать одну команду из командной строки через SQL PLUS?
@echo select version from system; | sqlplus username/password@database
Вы можете либо трусить вывод в файл и использовать это или обернуть это В для команды
для анализа вывода в вашем пакетном файле.
Редактировать: Этот ответ предназначен для SQL Server, не Oracle. (Это было не сразу понятно, когда вопрос был опубликован).
Вы можете проверить утилиту SQLCMD .
Утилита SQLCMD позволяет вводить операторы Transact-SQL, системные процедуры и файлы сценариев в командной строке. В следующем примере выполняется запрос, когда SQLCMD запускается, а затем выходит сразу. Можно выполнить несколько запятых запросов:
sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM Person.Contact WHERE LastName LIKE 'Whi%';"
, чтобы сохранить выходной сигнал запроса в файл, вы можете использовать опцию -O C: \
.
Это зависит от того, какой инструмент вы используете для выполнения запросов. Например, для инструмент командной строки MySQL , вы сделаете:
mysql -u<user> -p<password> -h<host> -Nrs -e"SELECT version() FROM system" > out.txt
здесь, кусок, который проходит MySQL -U
являются стандартными опциями для подключения к серверу. -NRS
- это набор вариантов, которые приведут клиенту не выводить все арт ASCII для результатов. Бит, который проходит -E "Выберите версию () из системы"
на самом деле указывает команду, которая должна быть выполнена. См. http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html Для получения дополнительной информации об этих параметрах MySQL. Ищите аналогичные варианты в клиентском инструменте, который вы хотите использовать.
Последний бит > Out.txt
- это стандартная операционная система перенаправления уровня системы. Это приведет к тому, что вывод из программы MySQL будет сохранен в файле out.txt
, но, возможно, вы также можете перенаправлять непосредственно в свою программу NSIS.
Попробуйте
sqlplus user/pwd@mydb @query.sql > result.txt
, где Query.SQL содержит запрос базы данных, а результат. Atxt будет заполнен выходом запроса.
В зависимости от запроса выходной файл может быть не так, как вы ожидаете его (заголовки столбцов и т. Д. Как типично для SQLPLUS), поэтому ваш Query.sql должен содержать некоторые заданные команды для настройки вывода на ваши потребности.
Другой метод - использовать команду Oracle SPOAL вместо того, чтобы трубопровод результат к файлу.
Если у вас есть утилита SQL командной строки, которая наиболее вероятно, что позволяет операциям командной строки. Согласно вашей версии SQL, вы можете проверить это.