Операторы SQL в пакетном файле Windows - PullRequest
2 голосов
/ 23 декабря 2008

Есть ли способ заставить пакетный файл Windows напрямую вводить операторы SQL без вызова скрипта? Я хочу, чтобы пакетный файл вошел в систему SQL, а затем непосредственно ввел их в операторы.

РЕДАКТИРОВАТЬ: Я использую Oracle v10g

Ответы [ 7 ]

3 голосов
/ 23 декабря 2008

Для запуска чего-либо на SQL-сервере 2005/2008 вы можете использовать sqlcmd утилиту командной строки sqlcmd -h печатает список переключателей.

3 голосов
/ 23 декабря 2008

Для одной команды вы можете использовать этот трюк:

echo select * from dual; | sqlplus user/pw@db
2 голосов
/ 23 декабря 2008

Краткий ответ: Нет. Пакетные файлы сами по себе не могут этого сделать.

Длинный ответ: вы можете приблизиться, в зависимости от того, какой тип сервера базы данных вы используете и какие возможности предоставляет клиент командной строки.

Какой сервер базы данных вы используете? Oracle, MySql, Sybase, Microsoft, Terradata, ???

Например, для базы данных Sybase вы можете использовать клиент командной строки isql для запуска из пакетного файла:

isql -S server -D database -U user -P password -i script
1 голос
/ 23 декабря 2008

Вы можете использовать sqlcmd (для сервера sql) или System.Data.Odbc.OdbcCommand из powershell .

0 голосов
/ 30 ноября 2011

Вот пример грубого сценария для MSSQL, который можно изменить для Oracle:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
:: batch file for sql query
SET STARTDATE=20101010
SET ENDDATE=20111109
SET AGENCYNAME=Agency
SET DBNAME=AccidentDB

SET SQLSTRING=SELECT Acc.INC_ID,^
 Veh.MAKE, Veh.MODEL, Veh.LIC_NUM^
 FROM Acc,^
 lnk_Acc_Veh, Veh^
 WHERE     (INC_NUM LIKE '20115000%')^
 AND lnk_Acc_Veh.link_id=Veh.key^
 AND lnk_Acc_Veh.link_id=Acc.key^
 AND Acc.date ^> '%STARTDATE%' OR Acc.date ^< '%ENDDATE%';

CLS
@ECHO.
@ECHO.
@ECHO DBNAME is %DBNAME%
@ECHO.
@ECHO SQLSTRING is "!SQLSTRING!"
@ECHO.
@ECHO ------------------------------------------------------
@sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W
@ECHO.
@ECHO Report is done. Hit any key to close this window....
@pause>nul
0 голосов
/ 10 сентября 2011

Вы можете использовать http://tekkies.co.uk/go/runsqloledb

например. RunSQLOLEDB "Provider = SQLOLEDB; Источник данных = (локальный); ..." "SELECT GetDate ()" или же RunSQLOLEDB @ ConnectionString.txt @ Query.sql

0 голосов
/ 23 декабря 2008

Команда odbc из набора инструментов outwit позволяет запускать операторы select в любой базе данных, для которой определен соответствующий источник данных ODBC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...